Index: third_party/WebKit/Tools/Scripts/webkitpy/tool/commands/rebaseline_unittest.py |
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/tool/commands/rebaseline_unittest.py b/third_party/WebKit/Tools/Scripts/webkitpy/tool/commands/rebaseline_unittest.py |
index abe3f60e7802c8096790e1b5dd92547b3b9090b6..20c1de4bd3a2563c14125713640453abe4c361e4 100644 |
--- a/third_party/WebKit/Tools/Scripts/webkitpy/tool/commands/rebaseline_unittest.py |
+++ b/third_party/WebKit/Tools/Scripts/webkitpy/tool/commands/rebaseline_unittest.py |
@@ -934,3 +934,93 @@ class MockLineRemovingExecutive(MockExecutive): |
self.calls = self.calls[:num_previous_calls] |
self.calls.append(new_calls) |
return command_outputs |
+ |
+ |
+class ChangeSetTest(unittest.TestCase): |
+ |
+ def test_constructor_and_getters(self): |
+ change_set = ChangeSet( |
+ files_to_add=['add/a.html', 'add/b.html'], |
+ files_to_delete=['del/x.html'], |
+ lines_to_remove={'my/test.html': ['my-builder']}) |
+ self.assertEqual(change_set.files_to_add, ['add/a.html', 'add/b.html']) |
+ self.assertEqual(change_set.files_to_delete, ['del/x.html']) |
+ self.assertEqual(change_set.lines_to_remove, {'my/test.html': ['my-builder']}) |
+ |
+ def test_files_to_add_and_files_to_delete_are_sorted_no_dupes(self): |
+ change_set = ChangeSet(files_to_add=['b', 'a', 'a'], files_to_delete=['x', 'y', 'x']) |
+ self.assertEqual(change_set.files_to_add, ['a', 'b']) |
+ self.assertEqual(change_set.files_to_delete, ['x', 'y']) |
+ |
+ def test_files_both_added_and_deleted_are_ignored(self): |
+ change_set = ChangeSet(files_to_add=['a', 'b', 'c'], files_to_delete=['c', 'd', 'e']) |
+ self.assertEqual(change_set.files_to_add, ['a', 'b']) |
+ self.assertEqual(change_set.files_to_delete, ['d', 'e']) |
+ change_set.add_file('d') |
+ self.assertEqual(change_set.files_to_add, ['a', 'b']) |
+ self.assertEqual(change_set.files_to_delete, ['e']) |
+ change_set.delete_file('b') |
+ self.assertEqual(change_set.files_to_add, ['a']) |
+ self.assertEqual(change_set.files_to_delete, ['e']) |
+ |
+ def test_add_file(self): |
+ change_set = ChangeSet() |
+ change_set.add_file('a') |
+ change_set.add_file('b') |
+ change_set.add_file('b') |
+ self.assertEqual(change_set.files_to_add, ['a', 'b']) |
+ |
+ def test_delete_file(self): |
+ change_set = ChangeSet() |
+ change_set.delete_file('a') |
+ change_set.delete_file('b') |
+ change_set.delete_file('b') |
+ self.assertEqual(change_set.files_to_delete, ['a', 'b']) |
+ |
+ def test_remove_line(self): |
+ change_set = ChangeSet() |
+ change_set.remove_line('test', 'builder-b') |
+ change_set.remove_line('test', 'builder-a') |
+ change_set.remove_line('test', 'builder-a') |
+ self.assertEqual( |
+ change_set.lines_to_remove, |
+ {'test': ['builder-a', 'builder-b']}) |
+ |
+ def test_from_dict(self): |
+ change_set = ChangeSet.from_dict({ |
+ 'add': ['to/add.html'], |
+ 'remove-lines': [{'test': 'some/test.html', 'builder': 'builder-name'}] |
+ }) |
+ self.assertEqual(change_set.files_to_add, ['to/add.html']) |
+ self.assertEqual(change_set.lines_to_remove, {'some/test.html': ['builder-name']}) |
+ |
+ def test_to_dict(self): |
+ change_set = ChangeSet( |
+ files_to_add=['add/b.html', 'add/a.html'], |
+ files_to_delete=['del/x.html'], |
+ lines_to_remove={ |
+ 'x/test.html': ['builder-b', 'builder-b', 'builder-a'], |
+ 'y/test.html': [], |
+ 'z/test.html': ['builder-c']}) |
+ self.assertEqual(change_set.to_dict(), { |
+ 'add': ['add/a.html', 'add/b.html'], |
+ 'delete': ['del/x.html'], |
+ 'remove-lines': [ |
+ {'test': 'x/test.html', 'builder': 'builder-a'}, |
+ {'test': 'x/test.html', 'builder': 'builder-b'}, |
+ {'test': 'z/test.html', 'builder': 'builder-c'}, |
+ ], |
+ }) |
+ |
+ def test_update(self): |
+ change_set = ChangeSet( |
+ files_to_add=['add/a.html', 'add/b.html'], |
+ files_to_delete=['del/x.html'], |
+ lines_to_remove={'my/test.html': ['my-builder']}) |
+ change_set.update(ChangeSet( |
+ files_to_add=['add/a.html', 'add/c.html', 'del/x.html'], |
+ files_to_delete=['add/b.html', 'del/y.html'], |
+ lines_to_remove={'my/test.html': ['my-builder', 'other-builder']})) |
+ self.assertEqual(change_set.files_to_add, ['add/a.html', 'add/c.html']) |
+ self.assertEqual(change_set.files_to_delete, ['del/y.html']) |
+ self.assertEqual(change_set.lines_to_remove, {'my/test.html': ['my-builder', 'other-builder']}) |