#!/usr/bin/env python # Copyright 2015 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import html_checker from os import path as os_path import re from sys import path as sys_path import test_util import unittest _HERE = os_path.dirname(os_path.abspath(__file__)) sys_path.append(os_path.join(_HERE, '..', '..', '..', 'tools')) import find_depot_tools # pylint: disable=W0611 from testing_support.super_mox import SuperMoxTestBase class HtmlCheckerTest(SuperMoxTestBase): def setUp(self): SuperMoxTestBase.setUp(self) input_api = self.mox.CreateMockAnything() input_api.re = re output_api = self.mox.CreateMockAnything() self.checker = html_checker.HtmlChecker(input_api, output_api) def ShouldFailCheck(self, line, checker): """Checks that the |checker| flags |line| as a style error.""" error = checker(1, line) self.assertNotEqual('', error, 'Should be flagged as style error: ' + line) highlight = test_util.GetHighlight(line, error).strip() def ShouldPassCheck(self, line, checker): """Checks that the |checker| doesn't flag |line| as a style error.""" error = checker(1, line) self.assertEqual('', error, 'Should not be flagged as style error: ' + line) def testClassesUseDashFormCheckFails(self): lines = [ ' ', ' ', '', '
', ] for line in lines: self.ShouldFailCheck(line, self.checker.ClassesUseDashFormCheck) def testClassesUseDashFormCheckPasses(self): lines = [ ' class="abc" ', 'class="foo-bar"', '
", ' ', "
", "
", "
", ] for line in lines: self.ShouldFailCheck(line, self.checker.DoNotCloseSingleTagsCheck) def testDoNotCloseSingleTagsCheckPasses(self): lines = [ "", "", "
", '', ] for line in lines: self.ShouldPassCheck(line, self.checker.DoNotCloseSingleTagsCheck) def testDoNotUseBrElementCheckFails(self): lines = [ "
", "
", "", '
', ] for line in lines: self.ShouldFailCheck( line, self.checker.DoNotUseBrElementCheck) def testDoNotUseBrElementCheckPasses(self): lines = [ "br", "br>", "give me a break" ] for line in lines: self.ShouldPassCheck( line, self.checker.DoNotUseBrElementCheck) def testDoNotUseInputTypeButtonCheckFails(self): lines = [ '', ' ', ' ', ] for line in lines: self.ShouldFailCheck(line, self.checker.DoNotUseInputTypeButtonCheck) def testDoNotUseInputTypeButtonCheckPasses(self): lines = [ "", '', '', '', "