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()
예제 #2
0
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
예제 #3
0
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
예제 #4
0
 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()
예제 #5
0
 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()
예제 #7
0
    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;
  }""")
예제 #8
0
    def setUp(self):
        super(CssCheckerTest, self).setUp()

        self.input_api = MockInputApi()
        self.checker = css_checker.CSSChecker(self.input_api, MockOutputApi())