• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/usr/bin/env python
2# Copyright (c) 2012 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'''Unit tests for grit.format.policy_templates.writers.template_writer'''
7
8import os
9import sys
10if __name__ == '__main__':
11  sys.path.append(os.path.join(os.path.dirname(__file__), '../../../..'))
12
13import unittest
14
15from grit.format.policy_templates.writers import template_writer
16
17
18POLICY_DEFS = [
19  {'name': 'zp', 'type': 'string', 'caption': 'a1', 'supported_on': []},
20  {
21    'type': 'group',
22    'caption': 'z_group1_caption',
23    'name': 'group1',
24    'policies': [
25      {'name': 'z0', 'type': 'string', 'supported_on': []},
26      {'name': 'a0', 'type': 'string', 'supported_on': []}
27    ]
28  },
29  {
30    'type': 'group',
31    'caption': 'b_group2_caption',
32    'name': 'group2',
33    'policies': [{'name': 'q', 'type': 'string', 'supported_on': []}],
34  },
35  {'name': 'ap', 'type': 'string', 'caption': 'a2', 'supported_on': []}
36]
37
38
39GROUP_FIRST_SORTED_POLICY_DEFS = [
40  {
41    'type': 'group',
42    'caption': 'b_group2_caption',
43    'name': 'group2',
44    'policies': [{'name': 'q', 'type': 'string', 'supported_on': []}],
45  },
46  {
47    'type': 'group',
48    'caption': 'z_group1_caption',
49    'name': 'group1',
50    'policies': [
51      {'name': 'z0', 'type': 'string', 'supported_on': []},
52      {'name': 'a0', 'type': 'string', 'supported_on': []}
53    ]
54  },
55  {'name': 'ap', 'type': 'string', 'caption': 'a2', 'supported_on': []},
56  {'name': 'zp', 'type': 'string', 'caption': 'a1', 'supported_on': []},
57]
58
59
60IGNORE_GROUPS_SORTED_POLICY_DEFS = [
61  {'name': 'a0', 'type': 'string', 'supported_on': []},
62  {'name': 'ap', 'type': 'string', 'caption': 'a2', 'supported_on': []},
63  {'name': 'q', 'type': 'string', 'supported_on': []},
64  {'name': 'z0', 'type': 'string', 'supported_on': []},
65  {'name': 'zp', 'type': 'string', 'caption': 'a1', 'supported_on': []},
66]
67
68
69class TemplateWriterUnittests(unittest.TestCase):
70  '''Unit tests for templater_writer.py.'''
71
72  def testSortingGroupsFirst(self):
73    tw = template_writer.TemplateWriter(None, None)
74    sorted_list = tw.SortPoliciesGroupsFirst(POLICY_DEFS)
75    self.assertEqual(sorted_list, GROUP_FIRST_SORTED_POLICY_DEFS)
76
77  def testSortingIgnoreGroups(self):
78    tw = template_writer.TemplateWriter(None, None)
79    sorted_list = tw.FlattenGroupsAndSortPolicies(POLICY_DEFS)
80    self.assertEqual(sorted_list, IGNORE_GROUPS_SORTED_POLICY_DEFS)
81
82
83if __name__ == '__main__':
84  unittest.main()
85