| # Copyright 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 unittest | |
| from webkitpy.common.host_mock import MockHost | |
| from webkitpy.common.system.executive_mock import MockExecutive, mock_git_commands | |
| from webkitpy.w3c.chromium_commit import ChromiumCommit | |
| CHROMIUM_WPT_DIR = 'third_party/WebKit/LayoutTests/external/wpt/' | |
| class ChromiumCommitTest(unittest.TestCase): | |
| def test_accepts_sha(self): | |
| chromium_commit = ChromiumCommit(MockHost(), sha='c881563d734a86f7d9cd57ac509653a61c45c240') | |
| self.assertEqual(chromium_commit.sha, 'c881563d734a86f7d9cd57ac509653a61c45c240') | |
| self.assertIsNone(chromium_commit.position) | |
| def test_derives_sha_from_position(self): | |
| host = MockHost() | |
| host.executive = MockExecutive(output='c881563d734a86f7d9cd57ac509653a61c45c240') | |
| pos = 'Cr-Commit-Position: refs/heads/master@{#789}' | |
| chromium_commit = ChromiumCommit(host, position=pos) | |
| self.assertEqual(chromium_commit.position, 'refs/heads/master@{#789}') | |
| self.assertEqual(chromium_commit.sha, 'c881563d734a86f7d9cd57ac509653a61c45c240') | |
| def test_filtered_changed_files_blacklist(self): | |
| host = MockHost() | |
| fake_files = ['file1', 'MANIFEST.json', 'file3'] | |
| qualified_fake_files = [CHROMIUM_WPT_DIR + f for f in fake_files] | |
| host.executive = mock_git_commands({ | |
| 'diff-tree': '\n'.join(qualified_fake_files), | |
| 'crrev-parse': 'c881563d734a86f7d9cd57ac509653a61c45c240', | |
| }) | |
| position_footer = 'Cr-Commit-Position: refs/heads/master@{#789}' | |
| chromium_commit = ChromiumCommit(host, position=position_footer) | |
| files = chromium_commit.filtered_changed_files() | |
| expected_files = ['file1', 'file3'] | |
| qualified_expected_files = [CHROMIUM_WPT_DIR + f for f in expected_files] | |
| self.assertEqual(files, qualified_expected_files) |