| 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", | 
|  |