| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
| 5 | 5 |
| 6 """Unit tests for Web Development Style Guide checker.""" | 6 """Unit tests for Web Development Style Guide checker.""" |
| 7 | 7 |
| 8 import os | 8 import os |
| 9 import re | 9 import re |
| 10 import sys | 10 import sys |
| (...skipping 437 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 448 self.input_api.re = re | 448 self.input_api.re = re |
| 449 self.mox.StubOutWithMock(self.input_api, 'AffectedSourceFiles') | 449 self.mox.StubOutWithMock(self.input_api, 'AffectedSourceFiles') |
| 450 self.input_api.AffectedFiles( | 450 self.input_api.AffectedFiles( |
| 451 include_deletes=False, file_filter=None).AndReturn([self.fake_file]) | 451 include_deletes=False, file_filter=None).AndReturn([self.fake_file]) |
| 452 | 452 |
| 453 # Actual creations of PresubmitPromptWarning are defined in each test. | 453 # Actual creations of PresubmitPromptWarning are defined in each test. |
| 454 self.output_api = self.mox.CreateMockAnything() | 454 self.output_api = self.mox.CreateMockAnything() |
| 455 self.mox.StubOutWithMock(self.output_api, 'PresubmitPromptWarning', | 455 self.mox.StubOutWithMock(self.output_api, 'PresubmitPromptWarning', |
| 456 use_mock_anything=True) | 456 use_mock_anything=True) |
| 457 | 457 |
| 458 author_msg = ('Was the CSS checker useful? ' | |
| 459 'Send feedback or hate mail to dbeam@chromium.org.') | |
| 460 self.output_api = self.mox.CreateMockAnything() | 458 self.output_api = self.mox.CreateMockAnything() |
| 461 self.mox.StubOutWithMock(self.output_api, 'PresubmitNotifyResult', | 459 self.mox.StubOutWithMock(self.output_api, 'PresubmitNotifyResult', |
| 462 use_mock_anything=True) | 460 use_mock_anything=True) |
| 463 self.output_api.PresubmitNotifyResult(author_msg).AndReturn(None) | 461 |
| 462 def VerifyContentsIsValid(self, contents): |
| 463 self.fake_file.NewContents().AndReturn(contents.splitlines()) |
| 464 self.mox.ReplayAll() |
| 465 css_checker.CSSChecker(self.input_api, self.output_api).RunChecks() |
| 464 | 466 |
| 465 def VerifyContentsProducesOutput(self, contents, output): | 467 def VerifyContentsProducesOutput(self, contents, output): |
| 466 self.fake_file.NewContents().AndReturn(contents.splitlines()) | 468 self.fake_file.NewContents().AndReturn(contents.splitlines()) |
| 469 author_msg = ('Was the CSS checker useful? ' |
| 470 'Send feedback or hate mail to dbeam@chromium.org.') |
| 471 self.output_api.PresubmitNotifyResult(author_msg).AndReturn(None) |
| 467 self.output_api.PresubmitPromptWarning( | 472 self.output_api.PresubmitPromptWarning( |
| 468 self.fake_file_name + ':\n' + output.strip()).AndReturn(None) | 473 self.fake_file_name + ':\n' + output.strip()).AndReturn(None) |
| 469 self.mox.ReplayAll() | 474 self.mox.ReplayAll() |
| 470 css_checker.CSSChecker(self.input_api, self.output_api).RunChecks() | 475 css_checker.CSSChecker(self.input_api, self.output_api).RunChecks() |
| 471 | 476 |
| 472 def testCssAlphaWithAtBlock(self): | 477 def testCssAlphaWithAtBlock(self): |
| 473 self.VerifyContentsProducesOutput(""" | 478 self.VerifyContentsProducesOutput(""" |
| 474 <include src="../shared/css/cr/ui/overlay.css"> | 479 <include src="../shared/css/cr/ui/overlay.css"> |
| 475 <include src="chrome://resources/totally-cool.css" /> | 480 <include src="chrome://resources/totally-cool.css" /> |
| 476 | 481 |
| (...skipping 24 matching lines...) Expand all Loading... |
| 501 opacity: 1; /* TODO(dbeam): Fix this. */ | 506 opacity: 1; /* TODO(dbeam): Fix this. */ |
| 502 } | 507 } |
| 503 </if>""", """ | 508 </if>""", """ |
| 504 - Alphabetize properties and list vendor specific (i.e. -webkit) above standard. | 509 - Alphabetize properties and list vendor specific (i.e. -webkit) above standard. |
| 505 display: block; | 510 display: block; |
| 506 color: red; | 511 color: red; |
| 507 | 512 |
| 508 z-index: 5; | 513 z-index: 5; |
| 509 color: black;""") | 514 color: black;""") |
| 510 | 515 |
| 516 def testCssStringWithAt(self): |
| 517 self.VerifyContentsIsValid(""" |
| 518 #logo { |
| 519 background-image: url('images/google_logo.png@2x'); |
| 520 } |
| 521 |
| 522 body.alternate-logo #logo { |
| 523 -webkit-mask-image: url('images/google_logo.png@2x'); |
| 524 background: none; |
| 525 } |
| 526 |
| 527 .stuff1 { |
| 528 } |
| 529 |
| 530 .stuff2 { |
| 531 } |
| 532 """) |
| 533 |
| 511 def testCssAlphaWithNonStandard(self): | 534 def testCssAlphaWithNonStandard(self): |
| 512 self.VerifyContentsProducesOutput(""" | 535 self.VerifyContentsProducesOutput(""" |
| 513 div { | 536 div { |
| 514 /* A hopefully safely ignored comment and @media statement. /**/ | 537 /* A hopefully safely ignored comment and @media statement. /**/ |
| 515 color: red; | 538 color: red; |
| 516 -webkit-margin-start: 5px; | 539 -webkit-margin-start: 5px; |
| 517 }""", """ | 540 }""", """ |
| 518 - Alphabetize properties and list vendor specific (i.e. -webkit) above standard. | 541 - Alphabetize properties and list vendor specific (i.e. -webkit) above standard. |
| 519 color: red; | 542 color: red; |
| 520 -webkit-margin-start: 5px;""") | 543 -webkit-margin-start: 5px;""") |
| (...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 770 opacity: .0; | 793 opacity: .0; |
| 771 opacity: 0.0; | 794 opacity: 0.0; |
| 772 opacity: 0.; | 795 opacity: 0.; |
| 773 border-width: 0mm; | 796 border-width: 0mm; |
| 774 height: 0cm; | 797 height: 0cm; |
| 775 width: 0in; | 798 width: 0in; |
| 776 """) | 799 """) |
| 777 | 800 |
| 778 if __name__ == '__main__': | 801 if __name__ == '__main__': |
| 779 unittest.main() | 802 unittest.main() |
| OLD | NEW |