# Copyright 2017 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.

# pylint: disable=no-member,relative-import

"""Unit tests for blink_idl_parser.py."""

import unittest

from blink_idl_parser import BlinkIDLParser


class BlinkIDLParserTest(unittest.TestCase):

    def test_missing_semicolon_between_definitions(self):
        # No semicolon after enum definition.
        text = '''enum TestEnum { "value" } dictionary TestDictionary {};'''
        parser = BlinkIDLParser()
        parser.ParseText(filename='', data=text)
        self.assertGreater(parser.GetErrors(), 0)
