| #!/usr/bin/env python |
| # Copyright 2013 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import unittest |
| |
| from test_file_system import TestFileSystem |
| |
| file_system = TestFileSystem({ |
| 'file.txt': '', |
| 'templates': { |
| 'README': '', |
| 'public': { |
| 'apps': { |
| '404.html': '', |
| 'a11y.html': '' |
| }, |
| 'extensions': { |
| '404.html': '', |
| 'cookies.html': '' |
| }, |
| 'redirects.json': 'redirect' |
| }, |
| 'json': { |
| 'manifest.json': 'manifest' |
| } |
| } |
| }) |
| |
| class FileSystemTest(unittest.TestCase): |
| def testWalk(self): |
| expected_files = [ |
| '^/file.txt', |
| 'templates/README', |
| 'templates/public/apps/404.html', |
| 'templates/public/apps/a11y.html', |
| 'templates/public/extensions/404.html', |
| 'templates/public/extensions/cookies.html', |
| 'templates/public/redirects.json', |
| 'templates/json/manifest.json' |
| ] |
| |
| expected_dirs = [ |
| '^/templates/', |
| 'templates/public/', |
| 'templates/public/apps/', |
| 'templates/public/extensions/', |
| 'templates/json/' |
| ] |
| |
| all_files = [] |
| all_dirs = [] |
| for root, dirs, files in file_system.Walk(''): |
| if not root: root = '^' |
| all_files += [root + '/' + name for name in files] |
| all_dirs += [root + '/' + name for name in dirs] |
| |
| self.assertEqual(sorted(expected_files), sorted(all_files)) |
| self.assertEqual(sorted(expected_dirs), sorted(all_dirs)) |
| |
| def testSubWalk(self): |
| expected_files = set([ |
| '/redirects.json', |
| 'apps/404.html', |
| 'apps/a11y.html', |
| 'extensions/404.html', |
| 'extensions/cookies.html' |
| ]) |
| |
| all_files = set() |
| for root, dirs, files in file_system.Walk('templates/public/'): |
| all_files.update(root + '/' + name for name in files) |
| |
| self.assertEqual(expected_files, all_files) |
| |
| def testExists(self): |
| def exists(path): |
| return file_system.Exists(path).Get() |
| |
| # Root directory. |
| self.assertTrue(exists('')) |
| |
| # Directories (are not files). |
| self.assertFalse(exists('templates')) |
| self.assertTrue(exists('templates/')) |
| self.assertFalse(exists('templates/public')) |
| self.assertTrue(exists('templates/public/')) |
| self.assertFalse(exists('templates/public/apps')) |
| self.assertTrue(exists('templates/public/apps/')) |
| |
| # Files (are not directories). |
| self.assertTrue(exists('file.txt')) |
| self.assertFalse(exists('file.txt/')) |
| self.assertTrue(exists('templates/README')) |
| self.assertFalse(exists('templates/README/')) |
| self.assertTrue(exists('templates/public/redirects.json')) |
| self.assertFalse(exists('templates/public/redirects.json/')) |
| self.assertTrue(exists('templates/public/apps/a11y.html')) |
| self.assertFalse(exists('templates/public/apps/a11y.html/')) |
| |
| |
| if __name__ == '__main__': |
| unittest.main() |