1#!/usr/bin/python 2# Copyright 2014 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"""Unittests for generate_resources_map.py""" 7 8import unittest 9 10import generate_resources_map 11 12 13class GenerateResourcesMapUnittest(unittest.TestCase): 14 TEST_INPUT = """ 15// This file is automatically generated by GRIT. Do not edit. 16 17#pragma once 18 19#define IDS_BOOKMARKS_NO_ITEMS 12500 20#define IDS_BOOKMARK_BAR_IMPORT_LINK 12501 21#define IDS_BOOKMARK_GROUP_FROM_IE 12502 22#define IDS_BOOKMARK_GROUP_FROM_FIREFOX 12503 23""" 24 25 def testGetResourceListFromString(self): 26 expected_tuples = [(301430091, "IDS_BOOKMARKS_NO_ITEMS", "12500"), 27 (2654138887, "IDS_BOOKMARK_BAR_IMPORT_LINK", "12501"), 28 (2894469061, "IDS_BOOKMARK_GROUP_FROM_IE", "12502"), 29 (3847176170, "IDS_BOOKMARK_GROUP_FROM_FIREFOX", "12503")] 30 expected = [generate_resources_map.Resource(*t) for t in expected_tuples] 31 32 actual_tuples = generate_resources_map._GetResourceListFromString( 33 self.TEST_INPUT) 34 35 self.assertEqual(expected_tuples, actual_tuples) 36 37 38 def testCheckForHashCollisions(self): 39 collisions_tuples = [(123, "IDS_FOO", "12500"), 40 (456, "IDS_BAR", "12501"), 41 (456, "IDS_BAZ", "12502"), 42 (890, "IDS_QUX", "12503"), 43 (899, "IDS_NO", "12504"), 44 (899, "IDS_YES", "12505")] 45 list_with_collisions = [generate_resources_map.Resource(*t) 46 for t in collisions_tuples] 47 48 expected_collision_tuples = [(456, "IDS_BAR", "12501"), 49 (456, "IDS_BAZ", "12502"), 50 (899, "IDS_NO", "12504"), 51 (899, "IDS_YES", "12505")] 52 expected_collisions = [generate_resources_map.Resource(*t) 53 for t in expected_collision_tuples] 54 55 actual_collisions = sorted( 56 generate_resources_map._CheckForHashCollisions(list_with_collisions)) 57 actual_collisions 58 59 self.assertEqual(expected_collisions, actual_collisions) 60 61 def testGenerateFileContent(self): 62 expected = ( 63 """// This file was generated by generate_resources_map.py. Do not edit. 64 65 66#include "chrome/browser/metrics/variations/generated_resources_map.h" 67 68namespace chrome_variations { 69 70const size_t kNumResources = 4; 71 72const uint32_t kResourceHashes[] = { 73 301430091U, // IDS_BOOKMARKS_NO_ITEMS 74 2654138887U, // IDS_BOOKMARK_BAR_IMPORT_LINK 75 2894469061U, // IDS_BOOKMARK_GROUP_FROM_IE 76 3847176170U, // IDS_BOOKMARK_GROUP_FROM_FIREFOX 77}; 78 79const int kResourceIndices[] = { 80 12500, // IDS_BOOKMARKS_NO_ITEMS 81 12501, // IDS_BOOKMARK_BAR_IMPORT_LINK 82 12502, // IDS_BOOKMARK_GROUP_FROM_IE 83 12503, // IDS_BOOKMARK_GROUP_FROM_FIREFOX 84}; 85 86} // namespace chrome_variations 87""") 88 actual = generate_resources_map._GenerateFileContent(self.TEST_INPUT) 89 90 self.assertEqual(expected, actual) 91 92if __name__ == '__main__': 93 unittest.main() 94