Chromium Code Reviews| Index: chrome/browser/resources/PRESUBMIT_test.py |
| diff --git a/chrome/browser/resources/PRESUBMIT_test.py b/chrome/browser/resources/PRESUBMIT_test.py |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..ba2dc499b0c94345dc40105a33e6a2dc561c34ce |
| --- /dev/null |
| +++ b/chrome/browser/resources/PRESUBMIT_test.py |
| @@ -0,0 +1,91 @@ |
| +# Copyright 2014 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 sys |
| +import imp |
| +import unittest |
| +import PRESUBMIT |
| + |
| +sys.path.append(os.path.abspath(os.path.dirname(__file__) + '/../../../')) |
| +from PRESUBMIT_test_mocks import MockFile, MockInputApi, MockOutputApi |
| + |
| +_TEST_DATA_DIR = 'base/test/data/presubmit/' |
| +_ACTION_XML_PATH = _TEST_DATA_DIR + "actions.xml" |
| + |
| +class HTMLActionAdditionTest(unittest.TestCase): |
| + |
| + def testActionXMLChanged(self): |
| + mock_input_api = MockInputApi() |
| + mock_input_api.files = [ |
| + MockFile('path/valid.html', ''), |
| + MockFile('actions.xml', '') ] |
| + |
| + warnings = PRESUBMIT.CheckUserActionUpdate(mock_input_api, |
| + MockOutputApi(), |
| + _ACTION_XML_PATH) |
| + self.assertEqual(0, len(warnings)) |
| + |
|
M-A Ruel
2014/11/26 18:15:48
normally, 1 empty line between class methods
gayane -on leave until 09-2017
2014/11/26 20:28:46
Done.
|
| + |
| + def testValidChange_StartOfLine(self): |
| + lines = ['<input id="testinput" pref="testpref"', |
| + 'metric="validaction" type="checkbox" dialog-pref>'] |
| + warnings = self._testChange(lines) |
| + self.assertEqual(0, len(warnings)) |
|
M-A Ruel
2014/11/26 18:15:48
self.assertEqual([], self._testChange(lines))
woul
gayane -on leave until 09-2017
2014/11/26 20:28:46
Done.
|
| + |
| + |
| + def testValidChange_StartsWithSpace(self): |
| + lines = ['<input id="testinput" pref="testpref"', |
| + ' metric="validaction" type="checkbox" dialog-pref>'] |
| + warnings = self._testChange(lines) |
| + self.assertEqual(0, len(warnings)) |
| + |
| + |
| + def testValidChange_Radio(self): |
| + lines = ['<input id="testinput" pref="testpref"', |
| + ' metric="validaction" type="radio" dialog-pref value="true">'] |
| + warnings = self._testChange(lines) |
| + self.assertEqual(0, len(warnings)) |
| + |
| + |
| + def testValidChange_UsingDatatype(self): |
| + lines = ['<input id="testinput" pref="testpref"', |
| + ' metric="validaction" datatype="boolean" dialog-pref>'] |
| + warnings = self._testChange(lines) |
| + self.assertEqual(0, len(warnings)) |
| + |
| + |
| + def testValidChange_NotBoolean(self): |
| + lines = ['<input id="testinput" pref="testpref"', |
| + ' metric="notboolean_validaction" dialog-pref>'] |
| + warnings = self._testChange(lines) |
| + self.assertEqual(0, len(warnings)) |
| + |
| + |
| + def testInvalidChange(self): |
| + lines = ['<input id="testinput" pref="testpref"', |
| + 'metric="invalidaction" type="checkbox" dialog-pref>'] |
| + warnings = self._testChange(lines) |
| + self.assertEqual(1, len(warnings)) |
| + |
| + |
| + def testInValidChange_Radio(self): |
| + lines = ['<input id="testinput" pref="testpref"', |
| + ' metric="validaction" type="radio" dialog-pref value="string">'] |
| + warnings = self._testChange(lines) |
| + self.assertEqual(1, len(warnings)) |
| + |
| + |
| + def _testChange(self, lines): |
| + action_xml_path = _TEST_DATA_DIR + "actions.xml" |
| + mock_input_api = MockInputApi() |
| + mock_input_api.files = [MockFile('path/test.html', lines)] |
| + |
| + return PRESUBMIT.CheckUserActionUpdate(mock_input_api, |
| + MockOutputApi(), |
| + _ACTION_XML_PATH) |
| + |
| + |
| +if __name__ == '__main__': |
| + unittest.main() |