blob: a67b4d396cc9f34c607d64a11a194d1d79d372d4 [file] [log] [blame]
# 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)