Index: tests/presubmit_unittest.py |
diff --git a/tests/presubmit_unittest.py b/tests/presubmit_unittest.py |
index 6559d572d5ecb78eae6814c15148464453f16d0b..29f9a931007a3846d9fbb61991a0525f07b3db34 100755 |
--- a/tests/presubmit_unittest.py |
+++ b/tests/presubmit_unittest.py |
@@ -1493,6 +1493,7 @@ class CannedChecksUnittest(PresubmitTestsBase): |
'CheckLicense', |
'CheckOwners', |
'CheckRietveldTryJobExecution', |
+ 'CheckSingletonInHeaders', |
'CheckSvnModifiedDirectories', |
'CheckSvnForCommonMimeTypes', 'CheckSvnProperty', |
'RunPythonUnitTests', 'RunPylint', |
@@ -1697,6 +1698,41 @@ class CannedChecksUnittest(PresubmitTestsBase): |
'Foo', None, 'Foo ', None, |
presubmit.OutputApi.PresubmitPromptWarning) |
+ def testCheckSingletonInHeaders(self): |
+ change1 = presubmit.Change( |
+ 'foo1', 'foo1\n', self.fake_root_dir, None, 0, 0, None) |
+ input_api1 = self.MockInputApi(change1, False) |
+ affected_file1 = self.mox.CreateMock(presubmit.SvnAffectedFile) |
+ affected_file2 = self.mox.CreateMock(presubmit.SvnAffectedFile) |
+ input_api1.AffectedSourceFiles(None).AndReturn( |
+ [affected_file1, affected_file2]) |
+ affected_file1.LocalPath().AndReturn('foo.h') |
+ input_api1.ReadFile(affected_file1).AndReturn( |
+ '// Comment mentioning Singleton<Foo>.\n' + |
+ 'friend class Singleton<Foo>;') |
+ for _ in range(4): |
+ affected_file2.LocalPath().AndReturn('foo.cc') |
+ |
+ change2 = presubmit.Change( |
+ 'foo2', 'foo2\n', self.fake_root_dir, None, 0, 0, None) |
+ input_api2 = self.MockInputApi(change2, False) |
+ |
+ affected_file3 = self.mox.CreateMock(presubmit.SvnAffectedFile) |
+ input_api2.AffectedSourceFiles(None).AndReturn([affected_file3]) |
+ affected_file3.LocalPath().AndReturn('foo.h') |
+ input_api2.ReadFile(affected_file3).AndReturn( |
+ 'Foo* foo = Singleton<Foo>::get();') |
+ |
+ self.mox.ReplayAll() |
+ |
+ results1 = presubmit_canned_checks.CheckSingletonInHeaders( |
+ input_api1, presubmit.OutputApi) |
+ self.assertEquals(results1, []) |
+ results2 = presubmit_canned_checks.CheckSingletonInHeaders( |
+ input_api2, presubmit.OutputApi) |
+ self.assertEquals(len(results2), 1) |
+ self.assertEquals(results2[0].__class__, presubmit.OutputApi.PresubmitError) |
+ |
def testCheckChangeHasOnlyOneEol(self): |
self.ReadFileTest(presubmit_canned_checks.CheckChangeHasOnlyOneEol, |
"Hey!\nHo!\n", "Hey!\nHo!\n\n", |