Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / chrome / common / extensions / docs / server2 / chained_compiled_file_system_test.py
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
6 import unittest
7
8 from chained_compiled_file_system import ChainedCompiledFileSystem
9 from compiled_file_system import CompiledFileSystem
10 from object_store_creator import ObjectStoreCreator
11 from test_file_system import TestFileSystem
12
13 _TEST_DATA_BASE = {
14   'a.txt': 'base a.txt',
15   'dir': {
16     'b.txt': 'base b.txt'
17   },
18 }
19
20 _TEST_DATA_NEW = {
21   'a.txt': 'new a.txt',
22   'new.txt': 'a new file',
23   'dir': {
24     'b.txt': 'new b.txt',
25     'new.txt': 'new file in dir',
26   },
27 }
28
29 identity = lambda _, x: x
30
31 class ChainedCompiledFileSystemTest(unittest.TestCase):
32   def setUp(self):
33     object_store_creator = ObjectStoreCreator(start_empty=False)
34     base_file_system = TestFileSystem(_TEST_DATA_BASE, identity='base')
35     self._base_compiled_fs = CompiledFileSystem.Factory(
36         object_store_creator).Create(base_file_system,
37                                      identity,
38                                      ChainedCompiledFileSystemTest)
39     chained_factory = ChainedCompiledFileSystem.Factory([base_file_system],
40                                                         object_store_creator)
41     self._new_file_system = TestFileSystem(_TEST_DATA_NEW, identity='new')
42     self._chained_compiled_fs = chained_factory.Create(
43         self._new_file_system, identity, ChainedCompiledFileSystemTest)
44
45   def testGetFromFile(self):
46     self.assertEqual(self._chained_compiled_fs.GetFromFile('a.txt').Get(),
47                      self._base_compiled_fs.GetFromFile('a.txt').Get())
48     self.assertEqual(self._chained_compiled_fs.GetFromFile('new.txt').Get(),
49                      'a new file')
50     self.assertEqual(self._chained_compiled_fs.GetFromFile('dir/new.txt').Get(),
51                      'new file in dir')
52     self._new_file_system.IncrementStat('a.txt')
53     self.assertNotEqual(self._chained_compiled_fs.GetFromFile('a.txt').Get(),
54                         self._base_compiled_fs.GetFromFile('a.txt').Get())
55     self.assertEqual(self._chained_compiled_fs.GetFromFile('a.txt').Get(),
56                      self._new_file_system.ReadSingle('a.txt').Get())
57
58   def testGetFromFileListing(self):
59     self.assertEqual(self._chained_compiled_fs.GetFromFileListing('dir/').Get(),
60                      self._base_compiled_fs.GetFromFileListing('dir/').Get())
61     self._new_file_system.IncrementStat('dir/new.txt')
62     self.assertNotEqual(
63         self._chained_compiled_fs.GetFromFileListing('dir/').Get(),
64         self._base_compiled_fs.GetFromFileListing('dir/').Get())
65     self.assertEqual(
66         self._chained_compiled_fs.GetFromFileListing('dir/').Get(),
67         self._new_file_system.ReadSingle('dir/').Get())
68
69 if __name__ == '__main__':
70   unittest.main()