def test_parse_definition_4(self): text = """// Copyright (c) 2012 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. 'use strict'; /** * @fileoverview TimelineView visualizes TRACE_EVENT events using the * tracing.Timeline component and adds in selection summary and control buttons. */ base.requireStylesheet('timeline_view') base.require('timeline'); base.require('timeline_analysis'); base.require('overlay'); base.require('trace_event_importer'); base.require('linux_perf_importer'); base.exportsTo('tracing', function() {""" module = parse_deps.Module("timeline_view") module.parse_definition_(text) self.assertEquals(["timeline_view"], module.style_sheet_names) self.assertEquals([ "timeline", "timeline_analysis", "overlay", "trace_event_importer", "linux_perf_importer" ], module.dependent_module_names)
def test_parse_dependency_with_dots(self): text = """base.require("foo.dependency1") """ module = parse_deps.Module("myModule") module.parse_definition_(text) self.assertEquals([], module.style_sheet_names) self.assertEquals(["foo.dependency1"], module.dependent_module_names)
def test_parse_empty_definition(self): text = """// blahblahblah """ module = parse_deps.Module("myModule") module.parse_definition_(text, decl_required=False) self.assertEquals([], module.style_sheet_names) self.assertEquals([], module.dependent_module_names)
def test_parse_dependency_with_dots(self): text = """base.require('foo.dependency1') """ module = parse_deps.Module('myModule') stripped_text = parse_deps._strip_js_comments(text) module.parse_definition_(stripped_text) self.assertEquals([], module.style_sheet_names) self.assertEquals(['foo.dependency1'], module.dependent_module_names)
def test_parse_empty_definition(self): text = """// blahblahblah 'use strict'; """ module = parse_deps.Module('myModule') stripped_text = parse_deps._strip_js_comments(text) module.parse_definition_(stripped_text, decl_required=False) self.assertEquals([], module.style_sheet_names) self.assertEquals([], module.dependent_module_names)
def test_validate_2(self): text = """// blahblahblah base.require('dependency1'); """ module = parse_deps.Module('myModule') stripped_text = parse_deps._strip_js_comments(text) self.assertRaises( lambda: module.validate_uses_strict_mode_(stripped_text))
def test_parse_definition_3(self): text = """// blahblahblah base.require('dependency1'); //base.require('dependency2'); """ module = parse_deps.Module("myModule") module.parse_definition_(text) self.assertEquals([], module.style_sheet_names) self.assertEquals(["dependency1"], module.dependent_module_names)
def test_validate_1(self): text = """// blahblahblah 'use strict'; base.require('dependency1'); """ module = parse_deps.Module('myModule') stripped_text = parse_deps._strip_js_comments(text) module.validate_uses_strict_mode_(stripped_text)
def test_parse_definition_missing_semis(self): text = """// blahblahblah base.require('dependency1') base.require('dependency2'); base.requireStylesheet('myStylesheet') """ module = parse_deps.Module("myModule") module.parse_definition_(text) self.assertEquals(["myStylesheet"], module.style_sheet_names); self.assertEquals(["dependency1", "dependency2"], module.dependent_module_names);
def test_parse_definition_3(self): text = """// blahblahblah 'use strict'; base.require('dependency1'); //base.require('dependency2'); """ module = parse_deps.Module('myModule') stripped_text = parse_deps._strip_js_comments(text) module.parse_definition_(stripped_text) self.assertEquals([], module.style_sheet_names) self.assertEquals(['dependency1'], module.dependent_module_names)
def test_parse_definition_with_deps_and_stylesheet_swapped(self): text = """// blahblahblah base.require('dependency1'); base.requireStylesheet('myStylesheet'); base.require('dependency2'); """ module = parse_deps.Module("myModule") module.parse_definition_(text) self.assertEquals(["myStylesheet"], module.style_sheet_names) self.assertEquals(["dependency1", "dependency2"], module.dependent_module_names)
def test_dependency_in_subdir(self): resource_finder = parse_deps.ResourceFinder(srcdir) module = parse_deps.Module("unittest") module.load_and_parse(os.path.join(srcdir, "unittest.js")) filename, contents = resource_finder.find_and_load_module( module, "tracks.timeline_track") self.assertEquals(filename, "tracks/timeline_track.js") expected_contents = '' with open(os.path.join(srcdir, "tracks/timeline_track.js")) as f: expected_contents = f.read() self.assertEquals(contents, expected_contents)
def test_basic(self): resource_finder = parse_deps.ResourceFinder(srcdir) module = parse_deps.Module("unittest") module.load_and_parse(os.path.join(srcdir, "unittest.js")) filename, contents = resource_finder.find_and_load_module(module, "base") self.assertTrue(os.path.samefile(filename, os.path.join(srcdir, "base.js"))) expected_contents = '' with open(os.path.join(srcdir, "base.js")) as f: expected_contents = f.read() self.assertEquals(contents, expected_contents)
def test_basic(self): resource_finder = parse_deps.ResourceFinder([src_dir]) module = parse_deps.Module('guid') module.load_and_parse(os.path.join(src_dir, 'base', 'guid.js')) filename, contents = resource_finder.find_and_load_module( module, 'base') self.assertTrue( os.path.samefile(filename, os.path.join(src_dir, 'base.js'))) expected_contents = '' with open(os.path.join(src_dir, 'base.js')) as f: expected_contents = f.read() self.assertEquals(contents, expected_contents)
def test_parse_definition_1(self): text = """// blahblahblah 'use strict'; base.require('dependency1'); base.require('dependency2'); base.requireStylesheet('myStylesheet'); base.requireTemplate('myTemplate'); """ module = parse_deps.Module('myModule') stripped_text = parse_deps._strip_js_comments(text) module.parse_definition_(stripped_text) self.assertEquals(['myStylesheet'], module.style_sheet_names) self.assertEquals(['myTemplate'], module.html_template_names) self.assertEquals(['dependency1', 'dependency2'], module.dependent_module_names)
def test_parse_definition_with_definition_in_comments(self): text = """// SomeComment /* * All subclasses should depend on linux_perf_parser, e.g. * * base.require('linux_perf_parser'); * base.exportTo('tracing', function() { }); * */ base.require('dependency1'); base.require('dependency2'); """ module = parse_deps.Module("myModule") module.parse_definition_(text) self.assertEquals([], module.style_sheet_names) self.assertEquals(["dependency1", "dependency2"], module.dependent_module_names)
def test_dependency_in_subdir(self): resource_finder = parse_deps.ResourceFinder([src_dir]) module = parse_deps.Module('base.guid') module.load_and_parse(os.path.join(src_dir, 'base', 'guid.js')) filename, contents = resource_finder.find_and_load_module( module, 'tracing.tracks.track') assert filename self.assertTrue( os.path.samefile( filename, os.path.join(src_dir, 'tracing', 'tracks', 'track.js'))) expected_contents = '' with open(os.path.join(src_dir, 'tracing', 'tracks', 'track.js')) as f: expected_contents = f.read() self.assertEquals(contents, expected_contents)
def test_parse_definition_with_definition_in_comments(self): text = """// SomeComment /* * All subclasses should depend on linux_perf_parser, e.g. * * base.require('linux_perf_parser'); * base.exportTo('tracing', function() { }); * */ 'use strict'; base.require('dependency1'); base.require('dependency2'); """ module = parse_deps.Module('myModule') stripped_text = parse_deps._strip_js_comments(text) module.parse_definition_(stripped_text) self.assertEquals([], module.style_sheet_names) self.assertEquals(['dependency1', 'dependency2'], module.dependent_module_names)
def test_module(self): resource_finder = ResourceFinderStub() resource_finder.add_module("y", "y.js", y_contents); resource_finder.add_module("z", "z.js", z_contents); x_module = parse_deps.Module("x") x_module.load_and_parse("x.js", x_contents) all_resources = {} x_module.resolve(all_resources, resource_finder) self.assertEquals([all_resources["scripts"]["y"], all_resources["scripts"]["z"]], x_module.dependent_modules) already_loaded_set = set() load_sequence = [] x_module.compute_load_sequence_recursive(load_sequence, already_loaded_set) self.assertEquals([all_resources["scripts"]["z"], all_resources["scripts"]["y"], x_module], load_sequence)
def test_module(self): resource_finder = ResourceFinderStub() resource_finder.add_module('y', 'y.js', y_contents) resource_finder.add_module('z', 'z.js', z_contents) x_module = parse_deps.Module('x') x_module.load_and_parse('x.js', x_contents) all_resources = {} x_module.resolve(all_resources, resource_finder) self.assertEquals( [all_resources['scripts']['y'], all_resources['scripts']['z']], x_module.dependent_modules) already_loaded_set = set() load_sequence = [] x_module.compute_load_sequence_recursive(load_sequence, already_loaded_set) self.assertEquals([ all_resources['scripts']['z'], all_resources['scripts']['y'], x_module ], load_sequence)
def test_parse_dependency_with_slashes(self): text = """base.require("foo/dependency1") """ module = parse_deps.Module("myModule") self.assertRaises(parse_deps.DepsException, lambda: module.parse_definition_(text))