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

Unified Diff: sdk/lib/_internal/pub_generated/test/get/cache_transformed_dependency_test.dart

Issue 657673002: Regenerate pub sources. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 2 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: sdk/lib/_internal/pub_generated/test/get/cache_transformed_dependency_test.dart
diff --git a/sdk/lib/_internal/pub_generated/test/get/cache_transformed_dependency_test.dart b/sdk/lib/_internal/pub_generated/test/get/cache_transformed_dependency_test.dart
index 7661ff61a4392f200d55fc717513fb7a7d2af25a..dd4fda87a7f384e3df6f98e4a380af7867d088d5 100644
--- a/sdk/lib/_internal/pub_generated/test/get/cache_transformed_dependency_test.dart
+++ b/sdk/lib/_internal/pub_generated/test/get/cache_transformed_dependency_test.dart
@@ -1,8 +1,15 @@
+// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS d.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 pub_tests;
+
import 'package:scheduled_test/scheduled_test.dart';
+
import '../descriptor.dart' as d;
import '../test_pub.dart';
import '../serve/utils.dart';
+
const MODE_TRANSFORMER = """
import 'dart:async';
@@ -24,6 +31,7 @@ class ModeTransformer extends Transformer {
}
}
""";
+
const HAS_INPUT_TRANSFORMER = """
import 'dart:async';
@@ -42,16 +50,19 @@ class HasInputTransformer extends Transformer {
transform.addOutput(new Asset.fromString(
transform.primaryInput.id,
"lib/foo.dart: \${results.first}, "
- "lib/does/not/exist.dart: \${results.last}"));
+ "lib/does/not/exist.dart: \${results.last}"));
});
}
}
""";
+
main() {
initConfig();
+
integration("caches a transformed dependency", () {
servePackages((builder) {
builder.serveRepoPackage('barback');
+
builder.serve("foo", "1.2.3", deps: {
'barback': 'any'
}, pubspec: {
@@ -64,10 +75,13 @@ main() {
d.file("transformer.dart", replaceTransformer("Hello", "Goodbye")),
d.file("foo.dart", "final message = 'Hello!';")])]);
});
+
d.appDir({
"foo": "1.2.3"
}).create();
+
pubGet(output: contains("Precompiled foo."));
+
d.dir(
appPath,
[
@@ -75,15 +89,18 @@ main() {
".pub/deps/debug/foo/lib",
[d.file("foo.dart", "final message = 'Goodbye!';")])]).validate();
});
+
integration("caches a dependency transformed by its dependency", () {
servePackages((builder) {
builder.serveRepoPackage('barback');
+
builder.serve("foo", "1.2.3", deps: {
'bar': '1.2.3'
}, pubspec: {
'transformers': ['bar']
},
contents: [d.dir("lib", [d.file("foo.dart", "final message = 'Hello!';")])]);
+
builder.serve("bar", "1.2.3", deps: {
'barback': 'any'
},
@@ -92,10 +109,13 @@ main() {
"lib",
[d.file("transformer.dart", replaceTransformer("Hello", "Goodbye"))])]);
});
+
d.appDir({
"foo": "1.2.3"
}).create();
+
pubGet(output: contains("Precompiled foo."));
+
d.dir(
appPath,
[
@@ -103,23 +123,30 @@ main() {
".pub/deps/debug/foo/lib",
[d.file("foo.dart", "final message = 'Goodbye!';")])]).validate();
});
+
integration("doesn't cache an untransformed dependency", () {
servePackages((builder) {
builder.serveRepoPackage('barback');
+
builder.serve(
"foo",
"1.2.3",
contents: [d.dir("lib", [d.file("foo.dart", "final message = 'Hello!';")])]);
});
+
d.appDir({
"foo": "1.2.3"
}).create();
+
pubGet(output: isNot(contains("Precompiled foo.")));
+
d.dir(appPath, [d.nothing(".pub/deps")]).validate();
});
+
integration("recaches when the dependency is updated", () {
servePackages((builder) {
builder.serveRepoPackage('barback');
+
builder.serve("foo", "1.2.3", deps: {
'barback': 'any'
}, pubspec: {
@@ -131,6 +158,7 @@ main() {
[
d.file("transformer.dart", replaceTransformer("Hello", "Goodbye")),
d.file("foo.dart", "final message = 'Hello!';")])]);
+
builder.serve("foo", "1.2.4", deps: {
'barback': 'any'
}, pubspec: {
@@ -143,20 +171,27 @@ main() {
d.file("transformer.dart", replaceTransformer("Hello", "See ya")),
d.file("foo.dart", "final message = 'Hello!';")])]);
});
+
d.appDir({
"foo": "1.2.3"
}).create();
+
pubGet(output: contains("Precompiled foo."));
+
d.dir(
appPath,
[
d.dir(
".pub/deps/debug/foo/lib",
[d.file("foo.dart", "final message = 'Goodbye!';")])]).validate();
+
+ // Upgrade to the new version of foo.
d.appDir({
"foo": "1.2.4"
}).create();
+
pubGet(output: contains("Precompiled foo."));
+
d.dir(
appPath,
[
@@ -164,9 +199,11 @@ main() {
".pub/deps/debug/foo/lib",
[d.file("foo.dart", "final message = 'See ya!';")])]).validate();
});
+
integration("recaches when a transitive dependency is updated", () {
servePackages((builder) {
builder.serveRepoPackage('barback');
+
builder.serve("foo", "1.2.3", deps: {
'barback': 'any',
'bar': 'any'
@@ -179,18 +216,23 @@ main() {
[
d.file("transformer.dart", replaceTransformer("Hello", "Goodbye")),
d.file("foo.dart", "final message = 'Hello!';")])]);
+
builder.serve("bar", "5.6.7");
});
+
d.appDir({
"foo": "1.2.3"
}).create();
pubGet(output: contains("Precompiled foo."));
+
servePackages((builder) => builder.serve("bar", "6.0.0"));
pubUpgrade(output: contains("Precompiled foo."));
});
+
integration("doesn't recache when an unrelated dependency is updated", () {
servePackages((builder) {
builder.serveRepoPackage('barback');
+
builder.serve("foo", "1.2.3", deps: {
'barback': 'any'
}, pubspec: {
@@ -202,18 +244,23 @@ main() {
[
d.file("transformer.dart", replaceTransformer("Hello", "Goodbye")),
d.file("foo.dart", "final message = 'Hello!';")])]);
+
builder.serve("bar", "5.6.7");
});
+
d.appDir({
"foo": "1.2.3"
}).create();
pubGet(output: contains("Precompiled foo."));
+
servePackages((builder) => builder.serve("bar", "6.0.0"));
pubUpgrade(output: isNot(contains("Precompiled foo.")));
});
+
integration("caches the dependency in debug mode", () {
servePackages((builder) {
builder.serveRepoPackage('barback');
+
builder.serve("foo", "1.2.3", deps: {
'barback': 'any'
}, pubspec: {
@@ -226,10 +273,13 @@ main() {
d.file("transformer.dart", MODE_TRANSFORMER),
d.file("foo.dart", "final mode = 'MODE';")])]);
});
+
d.appDir({
"foo": "1.2.3"
}).create();
+
pubGet(output: contains("Precompiled foo."));
+
d.dir(
appPath,
[
@@ -237,9 +287,11 @@ main() {
".pub/deps/debug/foo/lib",
[d.file("foo.dart", "final mode = 'debug';")])]).validate();
});
+
integration("loads code from the cache", () {
servePackages((builder) {
builder.serveRepoPackage('barback');
+
builder.serve("foo", "1.2.3", deps: {
'barback': 'any'
}, pubspec: {
@@ -252,26 +304,32 @@ main() {
d.file("transformer.dart", replaceTransformer("Hello", "Goodbye")),
d.file("foo.dart", "final message = 'Hello!';")])]);
});
+
d.dir(appPath, [d.appPubspec({
"foo": "1.2.3"
}), d.dir('bin', [d.file('script.dart', """
import 'package:foo/foo.dart';
void main() => print(message);""")])]).create();
+
pubGet(output: contains("Precompiled foo."));
+
d.dir(
appPath,
[
d.dir(
".pub/deps/debug/foo/lib",
[d.file("foo.dart", "final message = 'Modified!';")])]).create();
+
var pub = pubRun(args: ["script"]);
pub.stdout.expect("Modified!");
pub.shouldExit();
});
+
integration("doesn't re-transform code loaded from the cache", () {
servePackages((builder) {
builder.serveRepoPackage('barback');
+
builder.serve("foo", "1.2.3", deps: {
'barback': 'any'
}, pubspec: {
@@ -284,26 +342,35 @@ main() {
d.file("transformer.dart", replaceTransformer("Hello", "Goodbye")),
d.file("foo.dart", "final message = 'Hello!';")])]);
});
+
d.dir(appPath, [d.appPubspec({
"foo": "1.2.3"
}), d.dir('bin', [d.file('script.dart', """
import 'package:foo/foo.dart';
void main() => print(message);""")])]).create();
+
pubGet(output: contains("Precompiled foo."));
+
+ // Manually reset the cache to its original state to prove that the
+ // transformer won't be run again on it.
d.dir(
appPath,
[
d.dir(
".pub/deps/debug/foo/lib",
[d.file("foo.dart", "final message = 'Hello!';")])]).create();
+
var pub = pubRun(args: ["script"]);
pub.stdout.expect("Hello!");
pub.shouldExit();
});
+
+ // Regression test for issue 21087.
integration("hasInput works for static packages", () {
servePackages((builder) {
builder.serveRepoPackage('barback');
+
builder.serve("foo", "1.2.3", deps: {
'barback': 'any'
}, pubspec: {
@@ -316,6 +383,7 @@ main() {
d.file("transformer.dart", replaceTransformer("Hello", "Goodbye")),
d.file("foo.dart", "void main() => print('Hello!');")])]);
});
+
d.dir(appPath, [d.pubspec({
"name": "myapp",
"dependencies": {
@@ -327,7 +395,9 @@ main() {
"lib",
[d.dir("src", [d.file("transformer.dart", HAS_INPUT_TRANSFORMER)])]),
d.dir("web", [d.file("foo.txt", "foo")])]).create();
+
pubGet(output: contains("Precompiled foo."));
+
pubServe();
requestShouldSucceed(
"foo.txt",
@@ -335,6 +405,7 @@ main() {
endPubServe();
});
}
+
String replaceTransformer(String input, String output) {
return """
import 'dart:async';

Powered by Google App Engine
This is Rietveld 408576698