Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / tools / grit / grit / format / data_pack_unittest.py
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.data_pack'''
7
8
9 import os
10 import sys
11 if __name__ == '__main__':
12   sys.path.append(os.path.join(os.path.dirname(__file__), '../..'))
13
14 import unittest
15
16 from grit.format import data_pack
17
18
19 class FormatDataPackUnittest(unittest.TestCase):
20   def testWriteDataPack(self):
21     expected = (
22         '\x04\x00\x00\x00'                  # header(version
23         '\x04\x00\x00\x00'                  #        no. entries,
24         '\x01'                              #        encoding)
25         '\x01\x00\x27\x00\x00\x00'          # index entry 1
26         '\x04\x00\x27\x00\x00\x00'          # index entry 4
27         '\x06\x00\x33\x00\x00\x00'          # index entry 6
28         '\x0a\x00\x3f\x00\x00\x00'          # index entry 10
29         '\x00\x00\x3f\x00\x00\x00'          # extra entry for the size of last
30         'this is id 4this is id 6')         # data
31     input = {1: '', 4: 'this is id 4', 6: 'this is id 6', 10: ''}
32     output = data_pack.WriteDataPackToString(input, data_pack.UTF8)
33     self.failUnless(output == expected)
34
35   def testRePackUnittest(self):
36     expected_with_whitelist = {
37         1: 'Never gonna', 10: 'give you up', 20: 'Never gonna let',
38         30: 'you down', 40: 'Never', 50: 'gonna run around and',
39         60: 'desert you'}
40     expected_without_whitelist = {
41         1: 'Never gonna', 10: 'give you up', 20: 'Never gonna let', 65: 'Close',
42         30: 'you down', 40: 'Never', 50: 'gonna run around and', 4: 'click',
43         60: 'desert you', 6: 'chirr', 32: 'oops, try again', 70: 'Awww, snap!'}
44     inputs = [{1: 'Never gonna', 4: 'click', 6: 'chirr', 10: 'give you up'},
45               {20: 'Never gonna let', 30: 'you down', 32: 'oops, try again'},
46               {40: 'Never', 50: 'gonna run around and', 60: 'desert you'},
47               {65: 'Close', 70: 'Awww, snap!'}]
48     whitelist = [1, 10, 20, 30, 40, 50, 60]
49     inputs = [data_pack.DataPackContents(input, data_pack.UTF8) for input
50               in inputs]
51
52     # RePack using whitelist
53     output, _ = data_pack.RePackFromDataPackStrings(inputs, whitelist)
54     self.assertDictEqual(expected_with_whitelist, output,
55                          'Incorrect resource output')
56
57     # RePack a None whitelist
58     output, _ = data_pack.RePackFromDataPackStrings(inputs, None)
59     self.assertDictEqual(expected_without_whitelist, output,
60                          'Incorrect resource output')
61
62
63 if __name__ == '__main__':
64   unittest.main()