1b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik// Copyright 2015 The Chromium Authors. All rights reserved.
2b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik// Use of this source code is governed by a BSD-style license that can be
3b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik// found in the LICENSE file.
4b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik'use strict';
5b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik
6b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craikvar assert = {
7b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik  equal: function(first, second) {
8b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik    if (first !== second) {
9b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik      throw new Error('Assertion error: ' + JSON.stringify(first) +
10b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik          ' !== ' + JSON.stringify(second));
11b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik    }
12b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik  }
13b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik};
14b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik
15b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craikfunction runTests() {
16b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik
17b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik  var test_os_client = {
18b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik    currentWorkingDirectory: '/a/b',
19b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik    exists: function(fileName) {
20b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik      return fileName === '/a/b/file_exists.html';
21b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik    }
22b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik  };
23b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik
24b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik  var path_utils = new PathUtils(test_os_client);
25b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik  assert.equal(path_utils.join('a', 'b'), 'a/b');
26b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik  assert.equal(path_utils.join('/a', 'b'), '/a/b');
27b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik  assert.equal(path_utils.join('/a/', 'b/'), '/a/b/');
28b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik  assert.equal(path_utils.join('/a', '/b/'), '/b/');
29b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik  assert.equal(path_utils.join('/a', './b/'), '/a/./b/');
30b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik  assert.equal(path_utils.join('/a/', './b/'), '/a/./b/');
31b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik  assert.equal(path_utils.join('../', 'b'), '../b');
32b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik  assert.equal(path_utils.join('../', 'b/'), '../b/');
33b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik  assert.equal(path_utils.join('a', 'b'), 'a/b');
34b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik
35b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik  assert.equal(path_utils.absPath('c'), '/a/b/c');
36b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik  assert.equal(path_utils.absPath('./c'), '/a/b/c');
37b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik  assert.equal(path_utils.absPath('./c/d'), '/a/b/c/d');
38b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik
39b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik  assert.equal(path_utils.relPath('/a/b/c', '/a/b'), 'c');
40b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik
41b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik  assert.equal(path_utils.relPath('/a/b/c/', '/a/b/c/'), '.');
42b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik  assert.equal(path_utils.relPath('/a/b/c', '/a/b/c/'), '.');
43b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik  assert.equal(path_utils.relPath('/a/b/c/', '/a/b/c'), '.');
44b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik  assert.equal(path_utils.relPath('/a/b/c', '/a/b/c'), '.');
45b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik
46b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik  assert.equal(path_utils.relPath('/a/b/c', '/a'), 'b/c');
47b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik  assert.equal(path_utils.relPath('/a/b/c', '/a/'), 'b/c');
48b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik
49b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik  assert.equal(path_utils.relPath('/a/b/c', '/b/c/'), '../../a/b/c');
50b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik  assert.equal(path_utils.relPath('/a/b/c', '/b/c'), '../../a/b/c');
51b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik  assert.equal(path_utils.relPath('/a/b/c/', '/b/c/'), '../../a/b/c');
52b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik  assert.equal(path_utils.relPath('/a/b/c/', '/b/c'), '../../a/b/c');
53b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik
54b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik
55b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik  assert.equal(path_utils.exists('/a/b/file_exists.html'), true);
56b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik  assert.equal(path_utils.exists('file_exists.html'), true);
57b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik  assert.equal(path_utils.exists('./file_exists.html'), true);
58b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik  assert.equal(path_utils.exists('/a/file_does_not_exists.html'), false);
59b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik}
60