| OLD | NEW |
| 1 #!/usr/bin/python2.4 | 1 #!/usr/bin/python2.4 |
| 2 # Copyright (c) 2011 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2011 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 '''Unit tests for grit.format.policy_templates.writers.json_writer''' | 6 '''Unit tests for grit.format.policy_templates.writers.json_writer''' |
| 7 | 7 |
| 8 | 8 |
| 9 import os | 9 import os |
| 10 import sys | 10 import sys |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 49 # Tests a policy group with a single policy of type 'main'. | 49 # Tests a policy group with a single policy of type 'main'. |
| 50 grd = self.PrepareTest( | 50 grd = self.PrepareTest( |
| 51 '{' | 51 '{' |
| 52 ' "policy_definitions": [' | 52 ' "policy_definitions": [' |
| 53 ' {' | 53 ' {' |
| 54 ' "name": "MainPolicy",' | 54 ' "name": "MainPolicy",' |
| 55 ' "type": "main",' | 55 ' "type": "main",' |
| 56 ' "caption": "",' | 56 ' "caption": "",' |
| 57 ' "desc": "",' | 57 ' "desc": "",' |
| 58 ' "supported_on": ["chrome.linux:8-"],' | 58 ' "supported_on": ["chrome.linux:8-"],' |
| 59 ' "annotations": {' | 59 ' "example_value": True' |
| 60 ' "example_value": True' | |
| 61 ' }' | |
| 62 ' },' | 60 ' },' |
| 63 ' ],' | 61 ' ],' |
| 64 ' "placeholders": [],' | 62 ' "placeholders": [],' |
| 65 ' "messages": {},' | 63 ' "messages": {},' |
| 66 '}') | 64 '}') |
| 67 output = self.GetOutput(grd, 'fr', {'_google_chrome' : '1'}, 'json', 'en') | 65 output = self.GetOutput(grd, 'fr', {'_google_chrome' : '1'}, 'json', 'en') |
| 68 expected_output = ( | 66 expected_output = ( |
| 69 '{\n' | 67 '{\n' |
| 70 ' "MainPolicy": true\n' | 68 ' "MainPolicy": true\n' |
| 71 '}') | 69 '}') |
| 72 self.CompareOutputs(output, expected_output) | 70 self.CompareOutputs(output, expected_output) |
| 73 | 71 |
| 74 def testStringPolicy(self): | 72 def testStringPolicy(self): |
| 75 # Tests a policy group with a single policy of type 'string'. | 73 # Tests a policy group with a single policy of type 'string'. |
| 76 grd = self.PrepareTest( | 74 grd = self.PrepareTest( |
| 77 '{' | 75 '{' |
| 78 ' "policy_definitions": [' | 76 ' "policy_definitions": [' |
| 79 ' {' | 77 ' {' |
| 80 ' "name": "StringPolicy",' | 78 ' "name": "StringPolicy",' |
| 81 ' "type": "string",' | 79 ' "type": "string",' |
| 82 ' "caption": "",' | 80 ' "caption": "",' |
| 83 ' "desc": "",' | 81 ' "desc": "",' |
| 84 ' "supported_on": ["chrome.linux:8-"],' | 82 ' "supported_on": ["chrome.linux:8-"],' |
| 85 ' "annotations": {' | 83 ' "example_value": "hello, world!"' |
| 86 ' "example_value": "hello, world!"' | |
| 87 ' }' | |
| 88 ' },' | 84 ' },' |
| 89 ' ],' | 85 ' ],' |
| 90 ' "placeholders": [],' | 86 ' "placeholders": [],' |
| 91 ' "messages": {},' | 87 ' "messages": {},' |
| 92 '}') | 88 '}') |
| 93 output = self.GetOutput(grd, 'fr', {'_chromium' : '1'}, 'json', 'en') | 89 output = self.GetOutput(grd, 'fr', {'_chromium' : '1'}, 'json', 'en') |
| 94 expected_output = ( | 90 expected_output = ( |
| 95 '{\n' | 91 '{\n' |
| 96 ' "StringPolicy": "hello, world!"\n' | 92 ' "StringPolicy": "hello, world!"\n' |
| 97 '}') | 93 '}') |
| 98 self.CompareOutputs(output, expected_output) | 94 self.CompareOutputs(output, expected_output) |
| 99 | 95 |
| 100 def testIntPolicy(self): | 96 def testIntPolicy(self): |
| 101 # Tests a policy group with a single policy of type 'string'. | 97 # Tests a policy group with a single policy of type 'string'. |
| 102 grd = self.PrepareTest( | 98 grd = self.PrepareTest( |
| 103 '{' | 99 '{' |
| 104 ' "policy_definitions": [' | 100 ' "policy_definitions": [' |
| 105 ' {' | 101 ' {' |
| 106 ' "name": "IntPolicy",' | 102 ' "name": "IntPolicy",' |
| 107 ' "type": "int",' | 103 ' "type": "int",' |
| 108 ' "caption": "",' | 104 ' "caption": "",' |
| 109 ' "desc": "",' | 105 ' "desc": "",' |
| 110 ' "supported_on": ["chrome.linux:8-"],' | 106 ' "supported_on": ["chrome.linux:8-"],' |
| 111 ' "annotations": {' | 107 ' "example_value": 15' |
| 112 ' "example_value": 15' | |
| 113 ' }' | |
| 114 ' },' | 108 ' },' |
| 115 ' ],' | 109 ' ],' |
| 116 ' "placeholders": [],' | 110 ' "placeholders": [],' |
| 117 ' "messages": {},' | 111 ' "messages": {},' |
| 118 '}') | 112 '}') |
| 119 output = self.GetOutput(grd, 'fr', {'_chromium' : '1'}, 'json', 'en') | 113 output = self.GetOutput(grd, 'fr', {'_chromium' : '1'}, 'json', 'en') |
| 120 expected_output = ( | 114 expected_output = ( |
| 121 '{\n' | 115 '{\n' |
| 122 ' "IntPolicy": 15\n' | 116 ' "IntPolicy": 15\n' |
| 123 '}') | 117 '}') |
| 124 self.CompareOutputs(output, expected_output) | 118 self.CompareOutputs(output, expected_output) |
| 125 | 119 |
| 126 def testIntEnumPolicy(self): | 120 def testIntEnumPolicy(self): |
| 127 # Tests a policy group with a single policy of type 'int-enum'. | 121 # Tests a policy group with a single policy of type 'int-enum'. |
| 128 grd = self.PrepareTest( | 122 grd = self.PrepareTest( |
| 129 '{' | 123 '{' |
| 130 ' "policy_definitions": [' | 124 ' "policy_definitions": [' |
| 131 ' {' | 125 ' {' |
| 132 ' "name": "EnumPolicy",' | 126 ' "name": "EnumPolicy",' |
| 133 ' "type": "int-enum",' | 127 ' "type": "int-enum",' |
| 134 ' "caption": "",' | 128 ' "caption": "",' |
| 135 ' "desc": "",' | 129 ' "desc": "",' |
| 136 ' "items": [' | 130 ' "items": [' |
| 137 ' {"name": "ProxyServerDisabled", "value": 0, "caption": ""},' | 131 ' {"name": "ProxyServerDisabled", "value": 0, "caption": ""},' |
| 138 ' {"name": "ProxyServerAutoDetect", "value": 1, "caption": ""},' | 132 ' {"name": "ProxyServerAutoDetect", "value": 1, "caption": ""},' |
| 139 ' ],' | 133 ' ],' |
| 140 ' "supported_on": ["chrome.linux:8-"],' | 134 ' "supported_on": ["chrome.linux:8-"],' |
| 141 ' "annotations": {' | 135 ' "example_value": 1' |
| 142 ' "example_value": 1' | |
| 143 ' }' | |
| 144 ' },' | 136 ' },' |
| 145 ' ],' | 137 ' ],' |
| 146 ' "placeholders": [],' | 138 ' "placeholders": [],' |
| 147 ' "messages": {},' | 139 ' "messages": {},' |
| 148 '}') | 140 '}') |
| 149 output = self.GetOutput(grd, 'fr', {'_google_chrome': '1'}, 'json', 'en') | 141 output = self.GetOutput(grd, 'fr', {'_google_chrome': '1'}, 'json', 'en') |
| 150 expected_output = ( | 142 expected_output = ( |
| 151 '{\n' | 143 '{\n' |
| 152 ' "EnumPolicy": 1\n' | 144 ' "EnumPolicy": 1\n' |
| 153 '}') | 145 '}') |
| 154 self.CompareOutputs(output, expected_output) | 146 self.CompareOutputs(output, expected_output) |
| 155 | 147 |
| 156 def testStringEnumPolicy(self): | 148 def testStringEnumPolicy(self): |
| 157 # Tests a policy group with a single policy of type 'string-enum'. | 149 # Tests a policy group with a single policy of type 'string-enum'. |
| 158 grd = self.PrepareTest( | 150 grd = self.PrepareTest( |
| 159 '{' | 151 '{' |
| 160 ' "policy_definitions": [' | 152 ' "policy_definitions": [' |
| 161 ' {' | 153 ' {' |
| 162 ' "name": "EnumPolicy",' | 154 ' "name": "EnumPolicy",' |
| 163 ' "type": "string-enum",' | 155 ' "type": "string-enum",' |
| 164 ' "caption": "",' | 156 ' "caption": "",' |
| 165 ' "desc": "",' | 157 ' "desc": "",' |
| 166 ' "items": [' | 158 ' "items": [' |
| 167 ' {"name": "ProxyServerDisabled", "value": "one",' | 159 ' {"name": "ProxyServerDisabled", "value": "one",' |
| 168 ' "caption": ""},' | 160 ' "caption": ""},' |
| 169 ' {"name": "ProxyServerAutoDetect", "value": "two",' | 161 ' {"name": "ProxyServerAutoDetect", "value": "two",' |
| 170 ' "caption": ""},' | 162 ' "caption": ""},' |
| 171 ' ],' | 163 ' ],' |
| 172 ' "supported_on": ["chrome.linux:8-"],' | 164 ' "supported_on": ["chrome.linux:8-"],' |
| 173 ' "annotations": {' | 165 ' "example_value": "one"' |
| 174 ' "example_value": "one"' | |
| 175 ' }' | |
| 176 ' },' | 166 ' },' |
| 177 ' ],' | 167 ' ],' |
| 178 ' "placeholders": [],' | 168 ' "placeholders": [],' |
| 179 ' "messages": {},' | 169 ' "messages": {},' |
| 180 '}') | 170 '}') |
| 181 output = self.GetOutput(grd, 'fr', {'_google_chrome': '1'}, 'json', 'en') | 171 output = self.GetOutput(grd, 'fr', {'_google_chrome': '1'}, 'json', 'en') |
| 182 expected_output = ( | 172 expected_output = ( |
| 183 '{\n' | 173 '{\n' |
| 184 ' "EnumPolicy": "one"\n' | 174 ' "EnumPolicy": "one"\n' |
| 185 '}') | 175 '}') |
| 186 self.CompareOutputs(output, expected_output) | 176 self.CompareOutputs(output, expected_output) |
| 187 | 177 |
| 188 def testListPolicy(self): | 178 def testListPolicy(self): |
| 189 # Tests a policy group with a single policy of type 'list'. | 179 # Tests a policy group with a single policy of type 'list'. |
| 190 grd = self.PrepareTest( | 180 grd = self.PrepareTest( |
| 191 '{' | 181 '{' |
| 192 ' "policy_definitions": [' | 182 ' "policy_definitions": [' |
| 193 ' {' | 183 ' {' |
| 194 ' "name": "ListPolicy",' | 184 ' "name": "ListPolicy",' |
| 195 ' "type": "list",' | 185 ' "type": "list",' |
| 196 ' "caption": "",' | 186 ' "caption": "",' |
| 197 ' "desc": "",' | 187 ' "desc": "",' |
| 198 ' "supported_on": ["chrome.linux:8-"],' | 188 ' "supported_on": ["chrome.linux:8-"],' |
| 199 ' "annotations": {' | 189 ' "example_value": ["foo", "bar"]' |
| 200 ' "example_value": ["foo", "bar"]' | |
| 201 ' }' | |
| 202 ' },' | 190 ' },' |
| 203 ' ],' | 191 ' ],' |
| 204 ' "placeholders": [],' | 192 ' "placeholders": [],' |
| 205 ' "messages": {},' | 193 ' "messages": {},' |
| 206 '}') | 194 '}') |
| 207 output = self.GetOutput(grd, 'fr', {'_chromium' : '1'}, 'json', 'en') | 195 output = self.GetOutput(grd, 'fr', {'_chromium' : '1'}, 'json', 'en') |
| 208 expected_output = ( | 196 expected_output = ( |
| 209 '{\n' | 197 '{\n' |
| 210 ' "ListPolicy": ["foo", "bar"]\n' | 198 ' "ListPolicy": ["foo", "bar"]\n' |
| 211 '}') | 199 '}') |
| 212 self.CompareOutputs(output, expected_output) | 200 self.CompareOutputs(output, expected_output) |
| 213 | 201 |
| 214 def testNonSupportedPolicy(self): | 202 def testNonSupportedPolicy(self): |
| 215 # Tests a policy that is not supported on Linux, so it shouldn't | 203 # Tests a policy that is not supported on Linux, so it shouldn't |
| 216 # be included in the JSON file. | 204 # be included in the JSON file. |
| 217 grd = self.PrepareTest( | 205 grd = self.PrepareTest( |
| 218 '{' | 206 '{' |
| 219 ' "policy_definitions": [' | 207 ' "policy_definitions": [' |
| 220 ' {' | 208 ' {' |
| 221 ' "name": "NonLinuxPolicy",' | 209 ' "name": "NonLinuxPolicy",' |
| 222 ' "type": "list",' | 210 ' "type": "list",' |
| 223 ' "caption": "",' | 211 ' "caption": "",' |
| 224 ' "desc": "",' | 212 ' "desc": "",' |
| 225 ' "supported_on": ["chrome.mac:8-"],' | 213 ' "supported_on": ["chrome.mac:8-"],' |
| 226 ' "annotations": {' | 214 ' "example_value": ["a"]' |
| 227 ' "example_value": ["a"]' | |
| 228 ' }' | |
| 229 ' },' | 215 ' },' |
| 230 ' ],' | 216 ' ],' |
| 231 ' "placeholders": [],' | 217 ' "placeholders": [],' |
| 232 ' "messages": {},' | 218 ' "messages": {},' |
| 233 '}') | 219 '}') |
| 234 output = self.GetOutput(grd, 'fr', {'_chromium' : '1'}, 'json', 'en') | 220 output = self.GetOutput(grd, 'fr', {'_chromium' : '1'}, 'json', 'en') |
| 235 expected_output = '{\n}' | 221 expected_output = '{\n}' |
| 236 self.CompareOutputs(output, expected_output) | 222 self.CompareOutputs(output, expected_output) |
| 237 | 223 |
| 238 def testPolicyGroup(self): | 224 def testPolicyGroup(self): |
| 239 # Tests a policy group that has more than one policies. | 225 # Tests a policy group that has more than one policies. |
| 240 grd = self.PrepareTest( | 226 grd = self.PrepareTest( |
| 241 '{' | 227 '{' |
| 242 ' "policy_definitions": [' | 228 ' "policy_definitions": [' |
| 243 ' {' | 229 ' {' |
| 244 ' "name": "Group1",' | 230 ' "name": "Group1",' |
| 245 ' "type": "group",' | 231 ' "type": "group",' |
| 246 ' "caption": "",' | 232 ' "caption": "",' |
| 247 ' "desc": "",' | 233 ' "desc": "",' |
| 248 ' "policies": [{' | 234 ' "policies": [{' |
| 249 ' "name": "Policy1",' | 235 ' "name": "Policy1",' |
| 250 ' "type": "list",' | 236 ' "type": "list",' |
| 251 ' "caption": "",' | 237 ' "caption": "",' |
| 252 ' "desc": "",' | 238 ' "desc": "",' |
| 253 ' "supported_on": ["chrome.linux:8-"],' | 239 ' "supported_on": ["chrome.linux:8-"],' |
| 254 ' "annotations": {' | 240 ' "example_value": ["a", "b"]' |
| 255 ' "example_value": ["a", "b"]' | |
| 256 ' }' | |
| 257 ' },{' | 241 ' },{' |
| 258 ' "name": "Policy2",' | 242 ' "name": "Policy2",' |
| 259 ' "type": "string",' | 243 ' "type": "string",' |
| 260 ' "caption": "",' | 244 ' "caption": "",' |
| 261 ' "desc": "",' | 245 ' "desc": "",' |
| 262 ' "supported_on": ["chrome.linux:8-"],' | 246 ' "supported_on": ["chrome.linux:8-"],' |
| 263 ' "annotations": {' | 247 ' "example_value": "c"' |
| 264 ' "example_value": "c"' | |
| 265 ' }' | |
| 266 ' }],' | 248 ' }],' |
| 267 ' },' | 249 ' },' |
| 268 ' ],' | 250 ' ],' |
| 269 ' "placeholders": [],' | 251 ' "placeholders": [],' |
| 270 ' "messages": {},' | 252 ' "messages": {},' |
| 271 '}') | 253 '}') |
| 272 output = self.GetOutput(grd, 'fr', {'_chromium' : '1'}, 'json', 'en') | 254 output = self.GetOutput(grd, 'fr', {'_chromium' : '1'}, 'json', 'en') |
| 273 expected_output = ( | 255 expected_output = ( |
| 274 '{\n' | 256 '{\n' |
| 275 ' "Policy1": ["a", "b"],\n' | 257 ' "Policy1": ["a", "b"],\n' |
| 276 ' "Policy2": "c"\n' | 258 ' "Policy2": "c"\n' |
| 277 '}') | 259 '}') |
| 278 self.CompareOutputs(output, expected_output) | 260 self.CompareOutputs(output, expected_output) |
| 279 | 261 |
| 280 | 262 |
| 281 if __name__ == '__main__': | 263 if __name__ == '__main__': |
| 282 unittest.main() | 264 unittest.main() |
| OLD | NEW |