| #!/usr/bin/env python |
| # Copyright 2020 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 unittest |
| |
| import PRESUBMIT |
| from PRESUBMIT_test_mocks import MockInputApi, MockOutputApi, MockFile |
| |
| |
| class CheckChangeOnUploadTest(unittest.TestCase): |
| |
| def testCheckPNGFormat(self): |
| correct_paths = [ |
| 'test_expected.pdf.0.png', |
| 'test_expected_win.pdf.1.png', |
| 'test_expected_skia.pdf.2.png', |
| 'test_expected_skiapaths.pdf.3.png', |
| 'test_expected_skia_mac.pdf.4.png', |
| 'test_expected_skiapaths_win.pdf.5.png', |
| 'notpng.cc', # Check will be skipped for non-PNG files |
| ] |
| wrong_paths = [ |
| 'expected.pdf.0.png', # Missing '_expected' |
| 'test1_expected.0.png', # Missing '.pdf' |
| 'test2_expected.pdf.png', # Missing page number |
| 'test3_expected.pdf.x.png', # Wrong character for page number |
| 'test4_expected_mac_skia.pdf.0.png', # Wrong order of keywords |
| 'test5_expected_useskia.pdf.0.png', # Wrong keyword |
| ] |
| mock_input_api = MockInputApi() |
| mock_output_api = MockOutputApi() |
| mock_input_api.files = map(MockFile, correct_paths + wrong_paths) |
| errors = map(str, PRESUBMIT._CheckPNGFormat(mock_input_api, |
| mock_output_api)) |
| |
| self.assertEqual(len(wrong_paths), len(errors)) |
| self.assertFalse('notpng.cc' in errors[0]) |
| for path, error in zip(wrong_paths, errors): |
| self.assertIn(path, error) |
| |
| |
| if __name__ == '__main__': |
| unittest.main() |