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