trisquel-icecat/icecat/l10n/compare-locales/compare_locales/tests/test_checks.py

69 lines
2.7 KiB
Python

# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
import unittest
from compare_locales.checks.base import CSSCheckMixin
class CSSParserTest(unittest.TestCase):
def setUp(self):
self.mixin = CSSCheckMixin()
def test_other(self):
refMap, errors = self.mixin.parse_css_spec("foo")
self.assertIsNone(refMap)
self.assertIsNone(errors)
def test_css_specs(self):
for prop in (
"min-width",
"width",
"max-width",
"min-height",
"height",
"max-height",
):
refMap, errors = self.mixin.parse_css_spec(f"{prop}:1px;")
self.assertDictEqual(refMap, {prop: "px"})
self.assertIsNone(errors)
def test_single_whitespace(self):
refMap, errors = self.mixin.parse_css_spec("width:15px;")
self.assertDictEqual(refMap, {"width": "px"})
self.assertIsNone(errors)
refMap, errors = self.mixin.parse_css_spec("width : \t 15px ; ")
self.assertDictEqual(refMap, {"width": "px"})
self.assertIsNone(errors)
refMap, errors = self.mixin.parse_css_spec("width: 15px")
self.assertDictEqual(refMap, {"width": "px"})
self.assertIsNone(errors)
def test_multiple(self):
refMap, errors = self.mixin.parse_css_spec("width:15px;height:20.2em;")
self.assertDictEqual(refMap, {"height": "em", "width": "px"})
self.assertIsNone(errors)
refMap, errors = self.mixin.parse_css_spec("width:15px \t\t; height:20em")
self.assertDictEqual(refMap, {"height": "em", "width": "px"})
self.assertIsNone(errors)
def test_errors(self):
refMap, errors = self.mixin.parse_css_spec("width:15pxfoo")
self.assertDictEqual(refMap, {"width": "px"})
self.assertListEqual(errors, [{"pos": 10, "code": "css-bad-content"}])
refMap, errors = self.mixin.parse_css_spec("width:15px height:20em")
self.assertDictEqual(refMap, {"height": "em", "width": "px"})
self.assertListEqual(errors, [{"pos": 10, "code": "css-missing-semicolon"}])
refMap, errors = self.mixin.parse_css_spec("witdth:15px")
self.assertIsNone(refMap)
self.assertIsNone(errors)
refMap, errors = self.mixin.parse_css_spec("width:1,5px")
self.assertIsNone(refMap)
self.assertIsNone(errors)
refMap, errors = self.mixin.parse_css_spec("width:1.5.1px")
self.assertIsNone(refMap)
self.assertIsNone(errors)
refMap, errors = self.mixin.parse_css_spec("width:1.px")
self.assertIsNone(refMap)
self.assertIsNone(errors)