| #!/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() |