aboutsummaryrefslogtreecommitdiff
path: root/contexts/data/lib/closure-library/closure/goog/string/path_test.html
blob: 1e14adeebaf2bc45d0b126d10529037df9905a53 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<!doctype html>
<html>
<!--
Copyright 2010 The Closure Library Authors. All Rights Reserved.

Use of this source code is governed by the Apache License, Version 2.0.
See the COPYING file for details.
-->
<head>
<title>Closure Unit Tests - goog.string.path</title>
<script src="../base.js"></script>
<script>
  goog.require('goog.string.path');
  goog.require('goog.testing.jsunit');
</script>
</head>
<body>
<script>

// 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/'))
}

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'));
}

</script>
</body>
</html>