1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
|
#!/usr/bin/env python
# Copyright 2014 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Unittests for generate_ui_string_overrider.py"""
import unittest
import generate_ui_string_overrider
class GenerateResourcesMapUnittest(unittest.TestCase):
NAMESPACE = "chrome_variations"
OUT_HEADER = "components/variations/service/ui_string_overrider_factory.h"
TEST_INPUT = """
// This file is automatically generated by GRIT. Do not edit.
#pragma once
#define IDS_BOOKMARKS_NO_ITEMS 12500
#define IDS_BOOKMARK_BAR_IMPORT_LINK 12501
#define IDS_BOOKMARK_GROUP_FROM_IE 12502
#define IDS_BOOKMARK_GROUP_FROM_FIREFOX 12503
"""
def testGetResourceListFromString(self):
expected_tuples = [(301430091, "IDS_BOOKMARKS_NO_ITEMS", "12500"),
(2654138887, "IDS_BOOKMARK_BAR_IMPORT_LINK", "12501"),
(2894469061, "IDS_BOOKMARK_GROUP_FROM_IE", "12502"),
(3847176170, "IDS_BOOKMARK_GROUP_FROM_FIREFOX", "12503")]
expected = [
generate_ui_string_overrider.Resource(*t) for t in expected_tuples]
actual_tuples = generate_ui_string_overrider._GetResourceListFromString(
self.TEST_INPUT)
self.assertEqual(expected_tuples, actual_tuples)
def testCheckForHashCollisions(self):
collisions_tuples = [(123, "IDS_FOO", "12500"),
(456, "IDS_BAR", "12501"),
(456, "IDS_BAZ", "12502"),
(890, "IDS_QUX", "12503"),
(899, "IDS_NO", "12504"),
(899, "IDS_YES", "12505")]
list_with_collisions = [generate_ui_string_overrider.Resource(*t)
for t in collisions_tuples]
expected_collision_tuples = [(456, "IDS_BAR", "12501"),
(456, "IDS_BAZ", "12502"),
(899, "IDS_NO", "12504"),
(899, "IDS_YES", "12505")]
expected_collisions = [generate_ui_string_overrider.Resource(*t)
for t in expected_collision_tuples]
actual_collisions = sorted(
generate_ui_string_overrider._CheckForHashCollisions(
list_with_collisions))
actual_collisions
self.assertEqual(expected_collisions, actual_collisions)
def testGenerateSourceFileContent(self):
expected = (
"""\
// This file was generated by generate_ui_string_overrider.py. Do not edit.
#include "components/variations/service/ui_string_overrider_factory.h"
namespace chrome_variations {
namespace {
const uint32_t kResourceHashes[] = {
301430091U, // IDS_BOOKMARKS_NO_ITEMS
2654138887U, // IDS_BOOKMARK_BAR_IMPORT_LINK
2894469061U, // IDS_BOOKMARK_GROUP_FROM_IE
3847176170U, // IDS_BOOKMARK_GROUP_FROM_FIREFOX
};
const int kResourceIndices[] = {
12500, // IDS_BOOKMARKS_NO_ITEMS
12501, // IDS_BOOKMARK_BAR_IMPORT_LINK
12502, // IDS_BOOKMARK_GROUP_FROM_IE
12503, // IDS_BOOKMARK_GROUP_FROM_FIREFOX
};
} // namespace
variations::UIStringOverrider CreateUIStringOverrider() {
return variations::UIStringOverrider(
kResourceHashes, kResourceIndices);
}
} // namespace chrome_variations
""")
actual = generate_ui_string_overrider._GenerateSourceFileContent(
self.TEST_INPUT, self.NAMESPACE, self.OUT_HEADER)
self.assertEqual(expected, actual)
def testGenerateHeaderFileContent(self):
expected = (
"""\
// This file was generated by generate_ui_string_overrider.py. Do not edit.
#ifndef COMPONENTS_VARIATIONS_SERVICE_UI_STRING_OVERRIDER_FACTORY_H_
#define COMPONENTS_VARIATIONS_SERVICE_UI_STRING_OVERRIDER_FACTORY_H_
#include "components/variations/service/ui_string_overrider.h"
namespace chrome_variations {
// Returns an initialized UIStringOverrider.
variations::UIStringOverrider CreateUIStringOverrider();
} // namespace chrome_variations
#endif // COMPONENTS_VARIATIONS_SERVICE_UI_STRING_OVERRIDER_FACTORY_H_
""")
actual = generate_ui_string_overrider._GenerateHeaderFileContent(
self.NAMESPACE, self.OUT_HEADER)
self.assertEqual(expected, actual)
if __name__ == '__main__':
unittest.main()
|