blob: ec693e886999925be893c03b6608d0a0b2d59355 [file] [log] [blame]
# Copyright 2020 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.
from css_generator import CSSStyleGenerator
from proto_generator import ProtoStyleGenerator, ProtoJSONStyleGenerator
from views_generator import ViewsStyleGenerator
import unittest
class BaseStyleGeneratorTest:
def assertEqualToFile(self, value, filename):
with open(filename) as f:
contents = f.read()
self.assertEqual(
value, contents,
'\n>>>>>\n%s<<<<<\n\ndoes not match\n\n>>>>>\n%s<<<<<' %
(value, contents))
def testColorTestJSON(self):
self.generator.out_file_path = (
'tools/style_variable_generator/colors_test_expected.h')
self.assertEqualToFile(self.generator.Render(),
self.expected_output_file)
class ViewsStyleGeneratorTest(unittest.TestCase, BaseStyleGeneratorTest):
def setUp(self):
self.generator = ViewsStyleGenerator()
self.generator.AddJSONFileToModel('colors_test_palette.json5')
self.generator.AddJSONFileToModel('colors_test.json5')
self.expected_output_file = 'colors_test_expected.h'
class CSSStyleGeneratorTest(unittest.TestCase, BaseStyleGeneratorTest):
def setUp(self):
self.generator = CSSStyleGenerator()
self.generator.AddJSONFileToModel('colors_test_palette.json5')
self.generator.AddJSONFileToModel('colors_test.json5')
self.expected_output_file = 'colors_test_expected.css'
class ProtoStyleGeneratorTest(unittest.TestCase, BaseStyleGeneratorTest):
def setUp(self):
self.generator = ProtoStyleGenerator()
self.generator.AddJSONFileToModel('colors_test_palette.json5')
self.generator.AddJSONFileToModel('colors_test.json5')
self.expected_output_file = 'colors_test_expected.proto'
class ProtoJSONStyleGeneratorTest(unittest.TestCase, BaseStyleGeneratorTest):
def setUp(self):
self.generator = ProtoJSONStyleGenerator()
self.generator.AddJSONFileToModel('colors_test_palette.json5')
self.generator.AddJSONFileToModel('colors_test.json5')
self.expected_output_file = 'colors_test_expected.protojson'
if __name__ == '__main__':
unittest.main()