def VerifyContentsProducesOutput(self, contents, output, filename='fake.css'): self._create_file(contents, filename) self.output_api.PresubmitPromptWarning(self.fake_file_name + ':\n' + output.strip()).AndReturn(None) self.mox.ReplayAll() css_checker.CSSChecker(self.input_api, self.output_api).RunChecks()
def CheckStyle(input_api, output_api, file_filter=lambda f: True): apis = input_api, output_api wrapped_filter = lambda f: file_filter(f) and IsResource(f) checkers = [ css_checker.CSSChecker(*apis, file_filter=wrapped_filter), html_checker.HtmlChecker(*apis, file_filter=wrapped_filter), js_checker.JSChecker(*apis, file_filter=wrapped_filter), resource_checker.ResourceChecker(*apis, file_filter=wrapped_filter), ] results = [] for checker in checkers: results.extend(checker.RunChecks()) return results
def CheckStyle(input_api, output_api): apis = input_api, output_api is_resource = lambda f: f.LocalPath().endswith(('.html', '.css', '.js')) checkers = [ css_checker.CSSChecker(*apis, file_filter=is_resource), html_checker.HtmlChecker(*apis, file_filter=is_resource), js_checker.JSChecker(*apis, file_filter=is_resource), resource_checker.ResourceChecker(*apis, file_filter=is_resource), ] results = [] for checker in checkers: results.extend(checker.RunChecks()) return results
def VerifyContentsProducesOutput(self, contents, output): self.fake_file.NewContents().AndReturn(contents.splitlines()) self.output_api.PresubmitPromptWarning(self.fake_file_name + ':\n' + output.strip()).AndReturn(None) self.mox.ReplayAll() css_checker.CSSChecker(self.input_api, self.output_api).RunChecks()
def VerifyContentsIsValid(self, contents): self.fake_file.NewContents().AndReturn(contents.splitlines()) self.mox.ReplayAll() css_checker.CSSChecker(self.input_api, self.output_api).RunChecks()
def VerifyContentIsValid(self, contents, filename='fake.css'): self._create_file(contents, filename) self.mox.ReplayAll() css_checker.CSSChecker(self.input_api, self.output_api).RunChecks()
def testRemoveAtBlocks(self): self.mox.ReplayAll() self.input_api.AffectedFiles(include_deletes=False, file_filter=None) checker = css_checker.CSSChecker(self.input_api, self.output_api) self.assertEqual( checker.RemoveAtBlocks(""" @media (prefers-color-scheme: dark) { .magic { color: #000; } }"""), """ .magic { color: #000; }""") self.assertEqual( checker.RemoveAtBlocks(""" @media (prefers-color-scheme: dark) { .magic { --mixin-definition: { color: red; }; } }"""), """ .magic { --mixin-definition: { color: red; }; }""") self.assertEqual( checker.RemoveAtBlocks(""" @keyframes jiggle { from { left: 0; } 50% { left: 100%; } to { left: 10%; } }"""), """ from { left: 0; } 50% { left: 100%; } to { left: 10%; }""") self.assertEqual( checker.RemoveAtBlocks(""" @media print { .rule1 { color: black; } .rule2 { margin: 1in; } }"""), """ .rule1 { color: black; } .rule2 { margin: 1in; }""") self.assertEqual( checker.RemoveAtBlocks(""" @media (prefers-color-scheme: dark) { .rule1 { color: gray; } .rule2 { margin: .5in; } @keyframe dark-fade { 0% { background: black; } 100% { background: darkgray; } } }"""), """ .rule1 { color: gray; } .rule2 { margin: .5in; } 0% { background: black; } 100% { background: darkgray; }""") self.assertEqual( checker.RemoveAtBlocks(""" @-webkit-keyframe anim { 0% { /* Ignore key frames */ width: 0px; } 10% { width: 10px; } 50% { background-image: url(blah.svg); } 100% { width: 100px; } }"""), """ 0% { /* Ignore key frames */ width: 0px; } 10% { width: 10px; } 50% { background-image: url(blah.svg); } 100% { width: 100px; }""")
def setUp(self): super(CssCheckerTest, self).setUp() self.input_api = MockInputApi() self.checker = css_checker.CSSChecker(self.input_api, MockOutputApi())