minimize_css_unittest.py 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #!/usr/bin/env python3
  2. # Copyright 2016 The Chromium Authors. All rights reserved.
  3. # Use of this source code is governed by a BSD-style license that can be
  4. # found in the LICENSE file.
  5. import unittest
  6. import minimize_css
  7. class CSSMinimizerTest(unittest.TestCase):
  8. def test_simple(self):
  9. source = """
  10. div {
  11. color: blue;
  12. }
  13. """
  14. minimized = minimize_css.CSSMinimizer.minimize_css(source)
  15. self.assertEquals(minimized, "div{color: blue}")
  16. def test_attribute_selectors(self):
  17. source = """
  18. input[type="search" i]::-webkit-textfield-decoration-container {
  19. direction: ltr;
  20. }
  21. """
  22. minimized = minimize_css.CSSMinimizer.minimize_css(source)
  23. self.assertEquals(
  24. minimized,
  25. # pylint: disable=line-too-long
  26. """input[type="search" i]::-webkit-textfield-decoration-container{direction: ltr}""")
  27. def test_strip_comment(self):
  28. source = """
  29. /* header */
  30. html {
  31. /* inside block */
  32. display: block;
  33. }
  34. /* footer */
  35. """
  36. minimized = minimize_css.CSSMinimizer.minimize_css(source)
  37. self.assertEquals(minimized, "html{ display: block}")
  38. def test_no_strip_inside_quotes(self):
  39. source = """div[foo=' bar ']"""
  40. minimized = minimize_css.CSSMinimizer.minimize_css(source)
  41. self.assertEquals(minimized, source)
  42. source = """div[foo=" bar "]"""
  43. minimized = minimize_css.CSSMinimizer.minimize_css(source)
  44. self.assertEquals(minimized, source)
  45. def test_escape_string(self):
  46. source = """content: " <a onclick=\\\"javascript: alert ( 'foobar' ); \\\">";"""
  47. minimized = minimize_css.CSSMinimizer.minimize_css(source)
  48. self.assertEquals(minimized, source)