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 import unittest | 6 import unittest |
7 | 7 |
8 from features_utility import Parse, Filtered, MergedWith | 8 from features_utility import Parse, Filtered, MergedWith |
9 | 9 |
10 class FeaturesUtilityTest(unittest.TestCase): | 10 class FeaturesUtilityTest(unittest.TestCase): |
(...skipping 15 matching lines...) Expand all Loading... |
26 'doc5': { | 26 'doc5': { |
27 'extension_types': ['extension'] | 27 'extension_types': ['extension'] |
28 }, | 28 }, |
29 'doc1.sub1': { | 29 'doc1.sub1': { |
30 'extension_types': ['platform_app', 'hosted_app', 'packaged_app'] | 30 'extension_types': ['platform_app', 'hosted_app', 'packaged_app'] |
31 } | 31 } |
32 } | 32 } |
33 | 33 |
34 expected = { | 34 expected = { |
35 'doc1': { | 35 'doc1': { |
36 'platforms': ['app', 'extension'], | 36 'platforms': ['apps', 'extensions'], |
37 'name': 'doc1' | 37 'name': 'doc1' |
38 }, | 38 }, |
39 'doc2': { | 39 'doc2': { |
40 'platforms': [], | 40 'platforms': [], |
41 'name': 'doc2' | 41 'name': 'doc2' |
42 }, | 42 }, |
43 'doc4': { | 43 'doc4': { |
44 'platforms': ['app', 'extension'], | 44 'platforms': ['apps', 'extensions'], |
45 'name': 'doc4' | 45 'name': 'doc4' |
46 }, | 46 }, |
47 'doc5': { | 47 'doc5': { |
48 'platforms': ['extension'], | 48 'platforms': ['extensions'], |
49 'name': 'doc5' | 49 'name': 'doc5' |
50 }, | 50 }, |
51 'doc1.sub1': { | 51 'doc1.sub1': { |
52 'platforms': ['app'], | 52 'platforms': ['apps'], |
53 'name': 'doc1.sub1' | 53 'name': 'doc1.sub1' |
54 } | 54 } |
55 } | 55 } |
56 | 56 |
57 self.assertEqual(expected, Parse(raw_features_json)) | 57 self.assertEqual(expected, Parse(raw_features_json)) |
58 | 58 |
59 def testFilter(self): | 59 def testFilter(self): |
60 unfiltered = { | 60 unfiltered = { |
61 'doc1': { 'platforms': ['app'] }, | 61 'doc1': { 'platforms': ['apps'] }, |
62 'doc2': { 'platforms': ['extension'] }, | 62 'doc2': { 'platforms': ['extensions'] }, |
63 'doc3': { 'platforms': ['app', 'extension'] }, | 63 'doc3': { 'platforms': ['apps', 'extensions'] }, |
64 'doc4': { 'platforms': [] } | 64 'doc4': { 'platforms': [] } |
65 } | 65 } |
66 | 66 |
67 apps_names = set(('doc1', 'doc3')) | 67 apps_names = set(('doc1', 'doc3')) |
68 extension_names = set(('doc2', 'doc3')) | 68 extension_names = set(('doc2', 'doc3')) |
69 | 69 |
70 self.assertEqual( | 70 self.assertEqual( |
71 apps_names, set(Filtered(unfiltered, 'app').keys())) | 71 apps_names, set(Filtered(unfiltered, 'apps').keys())) |
72 self.assertEqual( | 72 self.assertEqual( |
73 extension_names, set(Filtered(unfiltered, 'extension').keys())) | 73 extension_names, set(Filtered(unfiltered, 'extensions').keys())) |
74 | 74 |
75 def testMergeFeatures(self): | 75 def testMergeFeatures(self): |
76 features = { | 76 features = { |
77 'doc1': { | 77 'doc1': { |
78 'platforms': ['app'] | 78 'platforms': ['apps'] |
79 }, | 79 }, |
80 'doc3': { | 80 'doc3': { |
81 'name': 'doc3' | 81 'name': 'doc3' |
82 } | 82 } |
83 } | 83 } |
84 | 84 |
85 other = { | 85 other = { |
86 'doc1': { | 86 'doc1': { |
87 'name': 'doc1', | 87 'name': 'doc1', |
88 'platforms': ['extension'] | 88 'platforms': ['extensions'] |
89 }, | 89 }, |
90 'doc2': { | 90 'doc2': { |
91 'name': 'doc2' | 91 'name': 'doc2' |
92 }, | 92 }, |
93 'doc3': { | 93 'doc3': { |
94 'platforms': ['extension', 'app'] | 94 'platforms': ['extensions', 'apps'] |
95 } | 95 } |
96 } | 96 } |
97 | 97 |
98 expected = { | 98 expected = { |
99 'doc1': { | 99 'doc1': { |
100 'name': 'doc1', | 100 'name': 'doc1', |
101 'platforms': ['extension'] | 101 'platforms': ['extensions'] |
102 }, | 102 }, |
103 'doc2': { | 103 'doc2': { |
104 'name': 'doc2', | 104 'name': 'doc2', |
105 'platforms': [] | 105 'platforms': [] |
106 }, | 106 }, |
107 'doc3': { | 107 'doc3': { |
108 'name': 'doc3', | 108 'name': 'doc3', |
109 'platforms': ['extension', 'app'] | 109 'platforms': ['extensions', 'apps'] |
110 } | 110 } |
111 } | 111 } |
112 | 112 |
113 self.assertEqual(expected, MergedWith(features, other)) | 113 self.assertEqual(expected, MergedWith(features, other)) |
114 | 114 |
115 if __name__ == '__main__': | 115 if __name__ == '__main__': |
116 unittest.main() | 116 unittest.main() |
OLD | NEW |