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

Unified Diff: pkg/barback/test/package_graph/transform_test.dart

Issue 23199004: Support passing barback assets through phases in which they're unused. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Fix a logic error. Created 7 years, 4 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
« no previous file with comments | « pkg/barback/test/package_graph/errors_test.dart ('k') | pkg/barback/test/transformer/check_content.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/barback/test/package_graph/transform_test.dart
diff --git a/pkg/barback/test/package_graph/transform_test.dart b/pkg/barback/test/package_graph/transform_test.dart
index c24bae83701469450f7070bd8fd9d45174b90656..f7d712d3f56b733ef6d74130caeb92d16b827dd6 100644
--- a/pkg/barback/test/package_graph/transform_test.dart
+++ b/pkg/barback/test/package_graph/transform_test.dart
@@ -603,7 +603,7 @@ main() {
test("doesn't transform an asset that goes from primary to non-primary "
"during isPrimary", () {
- var check = new CheckContentTransformer("do", "ne");
+ var check = new CheckContentTransformer(new RegExp(r"^do$"), "ne");
initGraph({
"app|foo.txt": "do"
}, {"app": [[check]]});
@@ -662,7 +662,7 @@ main() {
test("doesn't transform an asset that goes from primary to non-primary "
"during another transformer's isPrimary", () {
var rewrite = new RewriteTransformer("md", "md");
- var check = new CheckContentTransformer("do", "ne");
+ var check = new CheckContentTransformer(new RegExp(r"^do$"), "ne");
initGraph({
"app|foo.txt": "do",
"app|foo.md": "foo"
@@ -809,6 +809,118 @@ main() {
buildShouldSucceed();
});
+ group("pass-through", () {
+ test("passes an asset through a phase in which no transforms apply", () {
+ initGraph([
+ "app|foo.in",
+ "app|bar.zip",
+ ], {"app": [
+ [new RewriteTransformer("in", "mid")],
+ [new RewriteTransformer("zip", "zap")],
+ [new RewriteTransformer("mid", "out")],
+ ]});
+
+ updateSources(["app|foo.in", "app|bar.zip"]);
+ expectAsset("app|foo.out", "foo.mid.out");
+ expectAsset("app|bar.zap", "bar.zap");
+ buildShouldSucceed();
+ });
+
+ test("doesn't pass an asset through a phase in which a transform consumes "
+ "it", () {
+ initGraph([
+ "app|foo.in",
+ ], {"app": [
+ [new RewriteTransformer("in", "mid")],
+ [new RewriteTransformer("mid", "phase2")],
+ [new RewriteTransformer("mid", "phase3")],
+ ]});
+
+ updateSources(["app|foo.in"]);
+ expectAsset("app|foo.phase2", "foo.mid.phase2");
+ expectNoAsset("app|foo.phase3");
+ buildShouldSucceed();
+ });
+
+ test("removes a pass-through asset when the source is removed", () {
+ initGraph([
+ "app|foo.in",
+ "app|bar.zip",
+ ], {"app": [
+ [new RewriteTransformer("zip", "zap")],
+ [new RewriteTransformer("in", "out")],
+ ]});
+
+ updateSources(["app|foo.in", "app|bar.zip"]);
+ expectAsset("app|foo.out", "foo.out");
+ buildShouldSucceed();
+
+ removeSources(["app|foo.in"]);
+ expectNoAsset("app|foo.in");
+ expectNoAsset("app|foo.out");
+ buildShouldSucceed();
+ });
+
+ test("updates a pass-through asset when the source is updated", () {
+ initGraph([
+ "app|foo.in",
+ "app|bar.zip",
+ ], {"app": [
+ [new RewriteTransformer("zip", "zap")],
+ [new RewriteTransformer("in", "out")],
+ ]});
+
+ updateSources(["app|foo.in", "app|bar.zip"]);
+ expectAsset("app|foo.out", "foo.out");
+ buildShouldSucceed();
+
+ modifyAsset("app|foo.in", "boo");
+ updateSources(["app|foo.in"]);
+ expectAsset("app|foo.out", "boo.out");
+ buildShouldSucceed();
+ });
+
+ test("passes an asset through a phase in which transforms have ceased to "
+ "apply", () {
+ initGraph([
+ "app|foo.in",
+ ], {"app": [
+ [new RewriteTransformer("in", "mid")],
+ [new CheckContentTransformer("foo.mid", ".phase2")],
+ [new CheckContentTransformer(new RegExp(r"\.mid$"), ".phase3")],
+ ]});
+
+ updateSources(["app|foo.in"]);
+ expectAsset("app|foo.mid", "foo.mid.phase2");
+ buildShouldSucceed();
+
+ modifyAsset("app|foo.in", "bar");
+ updateSources(["app|foo.in"]);
+ expectAsset("app|foo.mid", "bar.mid.phase3");
+ buildShouldSucceed();
+ });
+
+ test("doesn't pass an asset through a phase in which transforms have "
+ "started to apply", () {
+ initGraph([
+ "app|foo.in",
+ ], {"app": [
+ [new RewriteTransformer("in", "mid")],
+ [new CheckContentTransformer("bar.mid", ".phase2")],
+ [new CheckContentTransformer(new RegExp(r"\.mid$"), ".phase3")],
+ ]});
+
+ updateSources(["app|foo.in"]);
+ expectAsset("app|foo.mid", "foo.mid.phase3");
+ buildShouldSucceed();
+
+ modifyAsset("app|foo.in", "bar");
+ updateSources(["app|foo.in"]);
+ expectAsset("app|foo.mid", "bar.mid.phase2");
+ buildShouldSucceed();
+ });
+ });
+
group('cross-package transforms', () {
test("can access other packages' source assets", () {
initGraph({
« no previous file with comments | « pkg/barback/test/package_graph/errors_test.dart ('k') | pkg/barback/test/transformer/check_content.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698