123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- // Copyright 2010 The Closure Library Authors. All Rights Reserved.
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS-IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- goog.provide('goog.string.pathTest');
- goog.setTestOnly('goog.string.pathTest');
- goog.require('goog.string.path');
- goog.require('goog.testing.jsunit');
- // Some test data comes from Python's posixpath tests.
- // See http://svn.python.org/view/python/trunk/Lib/test/test_posixpath.py
- function testBasename() {
- assertEquals('bar', goog.string.path.baseName('/foo/bar'));
- assertEquals('', goog.string.path.baseName('/'));
- assertEquals('foo', goog.string.path.baseName('foo'));
- assertEquals('foo', goog.string.path.baseName('////foo'));
- assertEquals('bar', goog.string.path.baseName('//foo//bar'));
- }
- function testDirname() {
- assertEquals('/foo', goog.string.path.dirname('/foo/bar'));
- assertEquals('/', goog.string.path.dirname('/'));
- assertEquals('', goog.string.path.dirname('foo'));
- assertEquals('////', goog.string.path.dirname('////foo'));
- assertEquals('//foo', goog.string.path.dirname('//foo//bar'));
- }
- function testJoin() {
- assertEquals('/bar/baz', goog.string.path.join('/foo', 'bar', '/bar', 'baz'));
- assertEquals('/foo/bar/baz', goog.string.path.join('/foo', 'bar', 'baz'));
- assertEquals('/foo/bar/baz', goog.string.path.join('/foo/', 'bar', 'baz'));
- assertEquals('/foo/bar/baz/', goog.string.path.join('/foo/', 'bar/', 'baz/'));
- }
- function testNormalizePath() {
- assertEquals('.', goog.string.path.normalizePath(''));
- assertEquals('.', goog.string.path.normalizePath('./'));
- assertEquals('/', goog.string.path.normalizePath('/'));
- assertEquals('//', goog.string.path.normalizePath('//'));
- assertEquals('/', goog.string.path.normalizePath('///'));
- assertEquals('/foo/bar', goog.string.path.normalizePath('///foo/.//bar//'));
- assertEquals(
- '/foo/baz',
- goog.string.path.normalizePath('///foo/.//bar//.//..//.//baz'));
- assertEquals(
- '/foo/bar', goog.string.path.normalizePath('///..//./foo/.//bar'));
- assertEquals(
- '../../cat/dog', goog.string.path.normalizePath('../../cat/dog/'));
- assertEquals('../dog', goog.string.path.normalizePath('../cat/../dog/'));
- assertEquals('/cat/dog', goog.string.path.normalizePath('/../cat/dog/'));
- assertEquals('/dog', goog.string.path.normalizePath('/../cat/../dog'));
- assertEquals('/dog', goog.string.path.normalizePath('/../../../dog'));
- }
- function testSplit() {
- assertArrayEquals(['/foo', 'bar'], goog.string.path.split('/foo/bar'));
- assertArrayEquals(['/', ''], goog.string.path.split('/'));
- assertArrayEquals(['', 'foo'], goog.string.path.split('foo'));
- assertArrayEquals(['////', 'foo'], goog.string.path.split('////foo'));
- assertArrayEquals(['//foo', 'bar'], goog.string.path.split('//foo//bar'));
- }
- function testExtension() {
- assertEquals('jpg', goog.string.path.extension('././foo/bar/baz.jpg'));
- assertEquals('jpg', goog.string.path.extension('././foo bar/baz.jpg'));
- assertEquals('jpg', goog.string.path.extension('foo/bar/baz/blah blah.jpg'));
- assertEquals('', goog.string.path.extension('../../foo/bar/baz baz'));
- assertEquals('', goog.string.path.extension('../../foo bar/baz baz'));
- assertEquals('', goog.string.path.extension('foo/bar/.'));
- assertEquals('', goog.string.path.extension(' '));
- assertEquals('', goog.string.path.extension(''));
- assertEquals('', goog.string.path.extension('/home/username/.bashrc'));
- // Tests cases taken from python os.path.splitext().
- assertEquals('bar', goog.string.path.extension('foo.bar'));
- assertEquals('bar', goog.string.path.extension('foo.boo.bar'));
- assertEquals('bar', goog.string.path.extension('foo.boo.biff.bar'));
- assertEquals('rc', goog.string.path.extension('.csh.rc'));
- assertEquals('', goog.string.path.extension('nodots'));
- assertEquals('', goog.string.path.extension('.cshrc'));
- assertEquals('', goog.string.path.extension('...manydots'));
- assertEquals('ext', goog.string.path.extension('...manydots.ext'));
- assertEquals('', goog.string.path.extension('.'));
- assertEquals('', goog.string.path.extension('..'));
- assertEquals('', goog.string.path.extension('........'));
- assertEquals('', goog.string.path.extension(''));
- }
|