Index: sync/PRESUBMIT_test.py |
diff --git a/sync/PRESUBMIT_test.py b/sync/PRESUBMIT_test.py |
deleted file mode 100644 |
index fdcae2453b092443a66ae0091eab420b5304b518..0000000000000000000000000000000000000000 |
--- a/sync/PRESUBMIT_test.py |
+++ /dev/null |
@@ -1,139 +0,0 @@ |
-# Copyright (c) 2016 The Chromium Authors. All rights reserved. |
-# Use of this source code is governed by a BSD-style license that can be |
-# found in the LICENSE file. |
- |
-import os |
-import re |
-import sys |
-import unittest |
-import PRESUBMIT |
- |
-sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) |
-from PRESUBMIT_test_mocks import MockOutputApi, MockChange |
- |
-class MockInputApi(object): |
- """ Mocked input api for unit testing of presubmit. |
- This lets us mock things like file system operations and changed files. |
- """ |
- def __init__(self): |
- self.re = re |
- self.os_path = os.path |
- self.files = [] |
- self.is_committing = False |
- |
- def AffectedFiles(self): |
- return self.files |
- |
- def AffectedSourceFiles(self): |
- return self.files |
- |
- def ReadFile(self, f): |
- """ Returns the mock contents of f if they've been defined. |
- """ |
- for api_file in self.files: |
- if api_file.LocalPath() == f: |
- return api_file.NewContents() |
- |
- |
-class MockFile(object): |
- """Mock file object so that presubmit can act invoke file system operations. |
- """ |
- def __init__(self, local_path, new_contents): |
- self._local_path = local_path |
- self._new_contents = new_contents |
- self._changed_contents = ([(i + 1, l) for i, l in enumerate(new_contents)]) |
- |
- def ChangedContents(self): |
- return self._changed_contents |
- |
- def NewContents(self): |
- return self._new_contents |
- |
- def LocalPath(self): |
- return self._local_path |
- |
- def AbsoluteLocalPath(self): |
- return self._local_path |
-# Format string used as the contents of a mock sync.proto in order to |
-# test presubmit parsing of EntitySpecifics definition in that file. |
-MOCK_PROTOFILE_CONTENTS = ('\n' |
- 'message EntitySpecifics {\n' |
- '//comment\n' |
- '\n' |
- 'optional AutofillSpecifics autofill = 123;\n' |
- 'optional AppSpecifics app = 456;\n' |
- 'optional AppSettingSpecifics app_setting = 789;\n' |
- '//comment\n' |
- '}\n') |
- |
- |
-# Format string used as the contents of a mock model_type.cc |
-# in order to test presubmit parsing of the ModelTypeInfoMap in that file. |
-MOCK_MODELTYPE_CONTENTS =('\n' |
- 'const ModelTypeInfo kModelTypeInfoMap[] = {\n' |
- '{APP_SETTINGS, "APP_SETTING", "app_settings", "App settings",\n' |
- 'sync_pb::EntitySpecifics::kAppSettingFieldNumber, 13},\n' |
- '%s\n' |
- '};\n') |
- |
- |
-class ModelTypeInfoChangeTest(unittest.TestCase): |
- """Unit testing class that contains tests for sync/PRESUBMIT.py. |
- """ |
- def test_ValidChangeMultiLine(self): |
- results = self._testChange('{APPS, "APP", "apps", "Apps",\n' |
- 'sync_pb::EntitySpecifics::kAppFieldNumber, 12},') |
- self.assertEqual(0, len(results)) |
- |
- def testValidChangeToleratesPluralization(self): |
- results = self._testChange('{APPS, "APP", "apps", "App",\n' |
- 'sync_pb::EntitySpecifics::kAppFieldNumber, 12},') |
- self.assertEqual(0, len(results)) |
- |
- def testValidChangeGrandfatheredEntry(self): |
- results = self._testChange('{PROXY_TABS, "", "", "Tabs", -1, 25},') |
- self.assertEqual(0, len(results)) |
- |
- def testInvalidChangeMismatchedNotificationType(self): |
- results = self._testChange('{AUTOFILL, "AUTOFILL_WRONG", "autofill",\n' |
- '"Autofill",sync_pb::EntitySpecifics::kAutofillFieldNumber, 6},') |
- self.assertEqual(1, len(results)) |
- self.assertTrue('notification type' in results[0].message) |
- |
- def testInvalidChangeInconsistentModelType(self): |
- results = self._testChange('{AUTOFILL, "AUTOFILL", "autofill",\n' |
- '"Autofill Extra",sync_pb::EntitySpecifics::kAutofillFieldNumber, 6},') |
- self.assertEqual(1, len(results)) |
- self.assertTrue('model type string' in results[0].message) |
- |
- def testInvalidChangeNotTitleCased(self): |
- results = self._testChange('{AUTOFILL, "AUTOFILL", "autofill",\n' |
- '"autofill",sync_pb::EntitySpecifics::kAutofillFieldNumber, 6},') |
- self.assertEqual(1, len(results)) |
- self.assertTrue('title' in results[0].message) |
- |
- def testInvalidChangeInconsistentRootTag(self): |
- results = self._testChange('{AUTOFILL, "AUTOFILL", "autofill root",\n' |
- '"Autofill",sync_pb::EntitySpecifics::kAutofillFieldNumber, 6},') |
- self.assertEqual(1, len(results)) |
- self.assertTrue('root tag' in results[0].message) |
- |
- def testInvalidChangeDuplicatedValues(self): |
- results = self._testChange('{APP_SETTINGS, "APP_SETTING",\n' |
- '"app_settings", "App settings",\n' |
- 'sync_pb::EntitySpecifics::kAppSettingFieldNumber, 13},\n') |
- self.assertEqual(6, len(results)) |
- self.assertTrue('APP_SETTINGS' in results[0].message) |
- |
- def _testChange(self, modeltype_literal): |
- mock_input_api = MockInputApi() |
- mock_input_api.files = [ |
- MockFile(os.path.abspath('./protocol/sync.proto'), |
- MOCK_PROTOFILE_CONTENTS), |
- MockFile(os.path.abspath('./syncable/model_type.cc'), |
- MOCK_MODELTYPE_CONTENTS % (modeltype_literal)) |
- ] |
- |
- return PRESUBMIT.CheckChangeOnCommit(mock_input_api, MockOutputApi()) |
-if __name__ == '__main__': |
- unittest.main() |