OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright 2013 The Chromium Authors. All rights reserved. | 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 | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 from copy import deepcopy | 6 from copy import deepcopy |
7 from file_system import FileNotFoundError, StatInfo | 7 from file_system import FileNotFoundError, StatInfo |
8 from mock_file_system import MockFileSystem | 8 from mock_file_system import MockFileSystem |
9 from test_file_system import TestFileSystem | 9 from test_file_system import TestFileSystem |
10 import unittest | 10 import unittest |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
45 fs.ReadSingle('apps/') | 45 fs.ReadSingle('apps/') |
46 self.assertFalse(*fs.CheckAndReset(read_count=2)) | 46 self.assertFalse(*fs.CheckAndReset(read_count=2)) |
47 | 47 |
48 fs.ReadSingle('extensions/') | 48 fs.ReadSingle('extensions/') |
49 fs.ReadSingle('extensions/') | 49 fs.ReadSingle('extensions/') |
50 self.assertTrue(*fs.CheckAndReset(read_count=2)) | 50 self.assertTrue(*fs.CheckAndReset(read_count=2)) |
51 self.assertFalse(*fs.CheckAndReset(read_count=2)) | 51 self.assertFalse(*fs.CheckAndReset(read_count=2)) |
52 self.assertTrue(*fs.CheckAndReset()) | 52 self.assertTrue(*fs.CheckAndReset()) |
53 | 53 |
54 fs.ReadSingle('404.html') | 54 fs.ReadSingle('404.html') |
55 fs.Read(['notfound.html', 'apps/']) | 55 future = fs.Read(['notfound.html', 'apps/']) |
56 self.assertTrue(*fs.CheckAndReset(read_count=2)) | 56 self.assertTrue(*fs.CheckAndReset(read_count=2)) |
| 57 self.assertRaises(FileNotFoundError, future.Get) |
57 | 58 |
58 fs.Stat('404.html') | 59 fs.Stat('404.html') |
59 fs.Stat('404.html') | 60 fs.Stat('404.html') |
60 fs.Stat('apps/') | 61 fs.Stat('apps/') |
61 self.assertFalse(*fs.CheckAndReset(stat_count=42)) | 62 self.assertFalse(*fs.CheckAndReset(stat_count=42)) |
62 self.assertFalse(*fs.CheckAndReset(stat_count=42)) | 63 self.assertFalse(*fs.CheckAndReset(stat_count=42)) |
63 self.assertTrue(*fs.CheckAndReset()) | 64 self.assertTrue(*fs.CheckAndReset()) |
64 | 65 |
65 fs.ReadSingle('404.html') | 66 fs.ReadSingle('404.html') |
66 fs.Stat('404.html') | 67 fs.Stat('404.html') |
67 fs.Stat('apps/') | 68 fs.Stat('apps/') |
68 self.assertTrue(*fs.CheckAndReset(read_count=1, stat_count=2)) | 69 self.assertTrue(*fs.CheckAndReset(read_count=1, stat_count=2)) |
69 self.assertTrue(*fs.CheckAndReset()) | 70 self.assertTrue(*fs.CheckAndReset()) |
70 | 71 |
| 72 def testUpdates(self): |
| 73 fs = MockFileSystem(TestFileSystem(deepcopy(_TEST_DATA))) |
| 74 |
| 75 self.assertEqual(StatInfo('0', child_versions={ |
| 76 '404.html': '0', |
| 77 'apps/': '0', |
| 78 'extensions/': '0' |
| 79 }), fs.Stat('/')) |
| 80 self.assertEqual(StatInfo('0'), fs.Stat('404.html')) |
| 81 self.assertEqual(StatInfo('0', child_versions={ |
| 82 'a11y.html': '0', |
| 83 'about_apps.html': '0', |
| 84 'fakedir/': '0', |
| 85 }), fs.Stat('apps/')) |
| 86 self.assertEqual('404.html contents', fs.ReadSingle('404.html')) |
| 87 |
| 88 fs.Update({ |
| 89 '404.html': 'New version!' |
| 90 }) |
| 91 |
| 92 self.assertEqual(StatInfo('1', child_versions={ |
| 93 '404.html': '1', |
| 94 'apps/': '0', |
| 95 'extensions/': '0' |
| 96 }), fs.Stat('/')) |
| 97 self.assertEqual(StatInfo('1'), fs.Stat('404.html')) |
| 98 self.assertEqual(StatInfo('0', child_versions={ |
| 99 'a11y.html': '0', |
| 100 'about_apps.html': '0', |
| 101 'fakedir/': '0', |
| 102 }), fs.Stat('apps/')) |
| 103 self.assertEqual('New version!', fs.ReadSingle('404.html')) |
| 104 |
| 105 fs.Update({ |
| 106 '404.html': 'Newer version!', |
| 107 'apps': { |
| 108 'fakedir': { |
| 109 'file.html': 'yo' |
| 110 } |
| 111 } |
| 112 }) |
| 113 |
| 114 self.assertEqual(StatInfo('2', child_versions={ |
| 115 '404.html': '2', |
| 116 'apps/': '2', |
| 117 'extensions/': '0' |
| 118 }), fs.Stat('/')) |
| 119 self.assertEqual(StatInfo('2'), fs.Stat('404.html')) |
| 120 self.assertEqual(StatInfo('2', child_versions={ |
| 121 'a11y.html': '0', |
| 122 'about_apps.html': '0', |
| 123 'fakedir/': '2', |
| 124 }), fs.Stat('apps/')) |
| 125 self.assertEqual(StatInfo('0'), fs.Stat('apps/a11y.html')) |
| 126 self.assertEqual(StatInfo('2', child_versions={ |
| 127 'file.html': '2' |
| 128 }), fs.Stat('apps/fakedir/')) |
| 129 self.assertEqual(StatInfo('2'), fs.Stat('apps/fakedir/file.html')) |
| 130 self.assertEqual(StatInfo('0', child_versions={ |
| 131 'activeTab.html': '0', |
| 132 'alarms.html': '0' |
| 133 }), fs.Stat('extensions/')) |
| 134 self.assertEqual('Newer version!', fs.ReadSingle('404.html')) |
| 135 self.assertEqual('yo', fs.ReadSingle('apps/fakedir/file.html')) |
| 136 |
71 if __name__ == '__main__': | 137 if __name__ == '__main__': |
72 unittest.main() | 138 unittest.main() |
OLD | NEW |