Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(73)

Unified Diff: packages/polymer/test/build/common.dart

Issue 2312183003: Removed Polymer from Observatory deps (Closed)
Patch Set: Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: packages/polymer/test/build/common.dart
diff --git a/packages/polymer/test/build/common.dart b/packages/polymer/test/build/common.dart
deleted file mode 100644
index 8a1b620bd57309157eaf159d3f58d93ab8617db4..0000000000000000000000000000000000000000
--- a/packages/polymer/test/build/common.dart
+++ /dev/null
@@ -1,258 +0,0 @@
-// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-library polymer.test.build.common;
-
-import 'dart:async';
-
-import 'package:barback/barback.dart';
-import 'package:code_transformers/messages/build_logger.dart'
- show LOG_EXTENSION;
-import 'package:polymer/src/build/common.dart';
-import 'package:stack_trace/stack_trace.dart';
-import 'package:unittest/unittest.dart';
-
-String idToString(AssetId id) => '${id.package}|${id.path}';
-AssetId idFromString(String s) {
- int index = s.indexOf('|');
- return new AssetId(s.substring(0, index), s.substring(index + 1));
-}
-
-String _removeTrailingWhitespace(String str) => str.splitMapJoin('\n',
- onNonMatch: (s) => s.replaceAll(new RegExp(r'\s+$'), ''));
-
-/// A helper package provider that has files stored in memory, also wraps
-/// [Barback] to simply our tests.
-class TestHelper implements PackageProvider {
- /// Maps from an asset string identifier of the form 'package|path' to the
- /// file contents.
- final Map<String, String> files;
- final Iterable<String> packages;
- final List<String> messages;
- int messagesSeen = 0;
- bool errorSeen = false;
-
- Barback barback;
- var errorSubscription;
- var resultSubscription;
- var logSubscription;
-
- Future<Asset> getAsset(AssetId id) {
- var content = files[idToString(id)];
- if (content == null) fail('error: requested $id, but $id is not available');
- return new Future.value(new Asset.fromString(id, content));
- }
-
- TestHelper(List<List<Transformer>> transformers, Map<String, String> files,
- this.messages)
- : files = files,
- packages = files.keys.map((s) => idFromString(s).package) {
- barback = new Barback(this);
- for (var p in packages) {
- barback.updateTransformers(p, transformers);
- }
-
- errorSubscription = barback.errors.listen((e) {
- var trace = null;
- if (e is Error) trace = e.stackTrace;
- if (trace != null) {
- print(Trace.format(trace));
- }
- fail('error running barback: $e');
- });
-
- resultSubscription = barback.results.listen((result) {
- expect(result.succeeded, !errorSeen, reason: "${result.errors}");
- });
-
- logSubscription = barback.log.listen((entry) {
- // Ignore info messages.
- if (entry.level == LogLevel.INFO || entry.level == LogLevel.FINE) return;
- if (entry.level == LogLevel.ERROR) errorSeen = true;
- // We only check messages when an expectation is provided.
- if (messages == null) return;
-
- var errorLink =
- new RegExp(' See http://goo.gl/5HPeuP#polymer_[0-9]* for details.');
- var text = entry.message;
- var newText = text.replaceFirst(errorLink, '');
- expect(text != newText, isTrue);
- var msg = '${entry.level.name.toLowerCase()}: ${newText}';
- var span = entry.span;
- var spanInfo = span == null
- ? ''
- : ' (${span.sourceUrl} ${span.start.line} ${span.start.column})';
- var index = messagesSeen++;
- expect(messagesSeen, lessThanOrEqualTo(messages.length),
- reason: 'more messages than expected.\nMessage seen: $msg$spanInfo');
- expect('$msg$spanInfo', messages[index]);
- });
- }
-
- void tearDown() {
- errorSubscription.cancel();
- resultSubscription.cancel();
- logSubscription.cancel();
- }
-
- /// Tells barback which files have changed, and thus anything that depends on
- /// it on should be computed. By default mark all the input files.
- void run([Iterable<String> paths]) {
- if (paths == null) paths = files.keys;
- barback.updateSources(paths.map(idFromString));
- }
-
- Future<String> operator [](String assetString) {
- return barback
- .getAssetById(idFromString(assetString))
- .then((asset) => asset.readAsString());
- }
-
- Future check(String assetIdString, String content) {
- return this[assetIdString].then((value) {
- value = _removeTrailingWhitespace(value);
- content = _removeTrailingWhitespace(content);
- expect(value, content, reason: 'Final output of $assetIdString differs.');
- });
- }
-
- Future checkAll(Map<String, String> files) {
- return barback.results.first.then((_) {
- if (files == null) return null;
- var futures = [];
- files.forEach((k, v) {
- futures.add(check(k, v));
- });
- return Future.wait(futures);
- }).then((_) {
- // We only check messages when an expectation is provided.
- if (messages == null) return;
- expect(messagesSeen, messages.length,
- reason: 'less messages than expected');
- });
- }
-}
-
-testPhases(String testName, List<List<Transformer>> phases,
- Map<String, String> inputFiles, Map<String, String> expectedFiles,
- [List<String> expectedMessages, bool solo = false]) {
- // Include mock versions of the polymer library that can be used to test
- // resolver-based code generation.
- POLYMER_MOCKS.forEach((file, contents) {
- inputFiles[file] = contents;
- });
- (solo ? solo_test : test)(testName, () {
- var helper = new TestHelper(phases, inputFiles, expectedMessages)..run();
- return helper.checkAll(expectedFiles).whenComplete(() => helper.tearDown());
- });
-}
-
-solo_testPhases(String testName, List<List<Transformer>> phases,
- Map<String, String> inputFiles, Map<String, String> expectedFiles,
- [List<String> expectedMessages]) => testPhases(
- testName, phases, inputFiles, expectedFiles, expectedMessages, true);
-
-// Similar to testPhases, but tests all the cases around log behaviour in
-// different modes. Any expectedFiles with [LOG_EXTENSION] will be removed from
-// the expectation as appropriate, and any error logs will be changed to expect
-// warning logs as appropriate.
-testLogOutput(Function buildPhase, String testName,
- Map<String, String> inputFiles, Map<String, String> expectedFiles,
- [List<String> expectedMessages, bool solo = false]) {
- final transformOptions = [
- new TransformOptions(injectBuildLogsInOutput: false, releaseMode: false),
- new TransformOptions(injectBuildLogsInOutput: false, releaseMode: true),
- new TransformOptions(injectBuildLogsInOutput: true, releaseMode: false),
- new TransformOptions(injectBuildLogsInOutput: true, releaseMode: true),
- ];
-
- for (var options in transformOptions) {
- var phase = buildPhase(options);
- var actualExpectedFiles = {};
- expectedFiles.forEach((file, content) {
- if (file.contains(LOG_EXTENSION) &&
- (!options.injectBuildLogsInOutput || options.releaseMode)) {
- return;
- }
- actualExpectedFiles[file] = content;
- });
- var fullTestName = '$testName: '
- 'injectLogs=${options.injectBuildLogsInOutput} '
- 'releaseMode=${options.releaseMode}';
- testPhases(fullTestName, [[phase]], inputFiles, actualExpectedFiles,
- expectedMessages
- .map((m) =>
- options.releaseMode ? m : m.replaceFirst('error:', 'warning:'))
- .toList(), solo);
- }
-}
-
-/// Generate an expected ._data file, where all files are assumed to be in the
-/// same [package].
-String expectedData(List<String> urls, {package: 'a', experimental: false}) {
- var ids = urls.map((e) => '["$package","$e"]').join(',');
- return '{"experimental_bootstrap":$experimental,"script_ids":[$ids]}';
-}
-
-const EMPTY_DATA = '{"experimental_bootstrap":false,"script_ids":[]}';
-
-const DART_SUPPORT_TAG =
- '<script src="packages/web_components/dart_support.js"></script>';
-const WEB_COMPONENTS_JS_TAG =
- '<script src="packages/web_components/webcomponents.min.js"></script>';
-const COMPATIBILITY_JS_TAGS = '$WEB_COMPONENTS_JS_TAG$DART_SUPPORT_TAG';
-const PLATFORM_JS_TAG =
- '<script src="packages/web_components/platform.js"></script>';
-
-const INTEROP_TAG = '<script src="packages/browser/interop.js"></script>';
-const DART_JS_TAG = '<script src="packages/browser/dart.js"></script>';
-
-const POLYMER_MOCKS = const {
- 'initialize|lib/initialize.dart': '''
- library initialize;
-
- abstract class Initializer<T> {}
-
- class _InitMethod implements Initializer<Function> {
- const _InitMethod();
- }
- const _InitMethod initMethod = const _InitMethod();''',
- 'polymer|lib/polymer.html': '<!DOCTYPE html><html>'
- '<link rel="import" href="../../packages/polymer_interop/polymer.html">',
- 'polymer|lib/polymer_experimental.html': '<!DOCTYPE html><html>'
- '<link rel="import" href="polymer.html">',
- 'polymer_interop|lib/polymer.html': '<!DOCTYPE html><html>'
- '<link rel="import" href="src/js/polymer.html">',
- 'polymer_interop|lib/src/js/polymer.html': '<!DOCTYPE html>',
- 'polymer|lib/polymer.dart': 'library polymer;\n'
- 'import "dart:html";\n'
- 'import "package:initialize/initialize.dart";\n'
- 'export "package:observe/observe.dart";\n' // for @observable
- 'part "src/loader.dart";\n' // for @CustomTag and @initMethod
- 'part "src/instance.dart";\n', // for @published and @ObserveProperty
-
- 'polymer|lib/src/loader.dart': 'part of polymer;\n'
- 'class CustomTag implements Initializer<Type> {\n'
- ' final String tagName;\n'
- ' const CustomTag(this.tagName);'
- '}\n',
- 'polymer|lib/src/instance.dart': 'part of polymer;\n'
- 'class PublishedProperty { const PublishedProperty(); }\n'
- 'const published = const PublishedProperty();\n'
- 'class ComputedProperty {'
- ' final String expression;\n'
- ' const ComputedProperty();'
- '}\n'
- 'class ObserveProperty { const ObserveProperty(); }\n'
- 'abstract class Polymer {}\n'
- 'class PolymerElement extends HtmlElement with Polymer {}\n',
- 'polymer|lib/init.dart': 'library polymer.init;\n'
- 'import "package:polymer/polymer.dart";\n'
- 'main() {};\n',
- 'observe|lib/observe.dart': 'library observe;\n'
- 'export "src/metadata.dart";',
- 'observe|lib/src/metadata.dart': 'library observe.src.metadata;\n'
- 'class ObservableProperty { const ObservableProperty(); }\n'
- 'const observable = const ObservableProperty();\n',
-};
« no previous file with comments | « packages/polymer/test/build/build_log_combiner_test.dart ('k') | packages/polymer/test/build/html_finalizer_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698