path_util_test.py revision 116680a4aac90f2aa7413d9095a592090648e557
1#!/usr/bin/env python 2# Copyright 2013 The Chromium Authors. All rights reserved. 3# Use of this source code is governed by a BSD-style license that can be 4# found in the LICENSE file. 5 6import unittest 7 8from path_util import SplitParent, Split, Segment 9 10 11class PathUtilTest(unittest.TestCase): 12 13 def testSplitParent(self): 14 self.assertEqual(('', 'hi'), SplitParent('hi')) 15 self.assertEqual(('', 'hi/'), SplitParent('hi/')) 16 self.assertEqual(('/', 'hi'), SplitParent('/hi')) 17 self.assertEqual(('/', 'hi/'), SplitParent('/hi/')) 18 self.assertEqual(('parent', 'hi'), SplitParent('parent/hi')) 19 self.assertEqual(('parent', 'hi/'), SplitParent('parent/hi/')) 20 self.assertEqual(('/parent', 'hi'), SplitParent('/parent/hi')) 21 self.assertEqual(('/parent', 'hi/'), SplitParent('/parent/hi/')) 22 self.assertEqual(('p1/p2', 'hi'), SplitParent('p1/p2/hi')) 23 self.assertEqual(('p1/p2', 'hi/'), SplitParent('p1/p2/hi/')) 24 self.assertEqual(('/p1/p2', 'hi'), SplitParent('/p1/p2/hi')) 25 self.assertEqual(('/p1/p2', 'hi/'), SplitParent('/p1/p2/hi/')) 26 27 def testSplit(self): 28 self.assertEqual(['p1/', 'p2/', 'p3'], Split('p1/p2/p3')) 29 self.assertEqual(['p1/', 'p2/', 'p3/'], Split('p1/p2/p3/')) 30 self.assertEqual([''], Split('')) 31 self.assertEqual(['p1/'], Split('p1/')) 32 self.assertEqual(['p1'], Split('p1')) 33 34 def testSegment(self): 35 self.assertEqual([('', '')], list(Segment(''))) 36 self.assertEqual([('', 'hi'), ('hi', '')], list(Segment('hi'))) 37 self.assertEqual([('', 'p1/p2/hi'), 38 ('p1/', 'p2/hi'), 39 ('p1/p2/', 'hi'), 40 ('p1/p2/hi', '')], 41 list(Segment('p1/p2/hi'))) 42 self.assertEqual([('', 'foo/bar/baz.txt'), 43 ('foo/', 'bar/baz.txt'), 44 ('foo/bar/', 'baz.txt'), 45 ('foo/bar/baz.txt', '')], 46 list(Segment('foo/bar/baz.txt'))) 47 48 49if __name__ == '__main__': 50 unittest.main() 51