Chromium Code Reviews| Index: pkg/barback/test/package_graph/add_remove_transform_test.dart |
| diff --git a/pkg/barback/test/package_graph/add_remove_transform_test.dart b/pkg/barback/test/package_graph/add_remove_transform_test.dart |
| index ac0076cd8f1f6df3d82c75db435a69a8fc121cf8..bcb5d29a24e159b580a385bb06fb785bdcadf7ab 100644 |
| --- a/pkg/barback/test/package_graph/add_remove_transform_test.dart |
| +++ b/pkg/barback/test/package_graph/add_remove_transform_test.dart |
| @@ -20,7 +20,6 @@ main() { |
| updateTransformers("app", [[new RewriteTransformer("blub", "blab")]]); |
| expectAsset("app|foo.blab", "foo.blab"); |
| - expectNoAsset("app|foo.blub"); |
|
Bob Nystrom
2014/02/26 01:09:15
How about changing these to positive expectations
nweiz
2014/02/26 19:37:14
They're not really relevant to the tests they're i
|
| buildShouldSucceed(); |
| }); |
| @@ -43,12 +42,10 @@ main() { |
| updateSources(["app|foo.blub"]); |
| expectAsset("app|foo.blab", "foo.blab"); |
| - expectNoAsset("app|foo.blub"); |
| buildShouldSucceed(); |
| updateTransformers("app", [[rewrite]]); |
| expectAsset("app|foo.blab", "foo.blab"); |
| - expectNoAsset("app|foo.blub"); |
| buildShouldSucceed(); |
| expect(rewrite.numRuns, completion(equals(1))); |
| @@ -61,7 +58,6 @@ main() { |
| updateSources(["app|foo.txt"]); |
| expectAsset("app|foo.blab", "foo.blub.blab"); |
| - expectNoAsset("app|foo.blub"); |
| buildShouldSucceed(); |
| updateTransformers("app", [[rewrite2], [rewrite1]]); |
| @@ -94,7 +90,6 @@ main() { |
| updateSources(["app|foo.blub"]); |
| expectAsset("app|foo.blab", "foo.blab"); |
| - expectNoAsset("app|foo.blub"); |
| buildShouldSucceed(); |
| updateTransformers("app", []); |
| @@ -192,22 +187,6 @@ main() { |
| buildShouldSucceed(); |
| }); |
| - test("a new transformer can see pass-through assets", () { |
| - var rewrite = new RewriteTransformer("zip", "zap"); |
| - initGraph(["app|foo.blub"], {"app": [[rewrite]]}); |
| - |
| - updateSources(["app|foo.blub"]); |
| - buildShouldSucceed(); |
| - |
| - updateTransformers("app", [ |
| - [rewrite], |
| - [new RewriteTransformer("blub", "blab")] |
| - ]); |
| - expectAsset("app|foo.blab", "foo.blab"); |
| - expectNoAsset("app|foo.blub"); |
| - buildShouldSucceed(); |
| - }); |
| - |
| test("a cross-package transform sees a new transformer in a new phase", () { |
| var rewrite = new RewriteTransformer("inc", "inc"); |
| initGraph({ |
| @@ -253,6 +232,105 @@ main() { |
| buildShouldSucceed(); |
| }); |
| + group("pass-through", () { |
| + test("a new transformer can see pass-through assets", () { |
| + var rewrite = new RewriteTransformer("zip", "zap"); |
| + initGraph(["app|foo.blub"], {"app": [[rewrite]]}); |
| + |
| + updateSources(["app|foo.blub"]); |
| + buildShouldSucceed(); |
| + |
| + updateTransformers("app", [ |
| + [rewrite], |
| + [new RewriteTransformer("blub", "blab")] |
| + ]); |
| + expectAsset("app|foo.blab", "foo.blab"); |
| + buildShouldSucceed(); |
| + }); |
| + |
| + test("a new transformer can overwrite an old asset", () { |
| + var rewrite = new RewriteTransformer("zip", "zap"); |
| + initGraph(["app|foo.txt"], {"app": [[rewrite]]}); |
| + |
| + updateSources(["app|foo.txt"]); |
| + expectAsset("app|foo.txt", "foo"); |
| + buildShouldSucceed(); |
| + |
| + updateTransformers("app", [ |
| + [rewrite, new RewriteTransformer("txt", "txt")] |
|
Bob Nystrom
2014/02/26 01:09:15
I'm not clear on what's going on here. Are you try
nweiz
2014/02/26 19:37:14
I'm asserting that a transform that's added to an
Bob Nystrom
2014/02/26 20:28:50
OK, add some docs to clarify.
nweiz
2014/02/27 21:04:20
Done.
|
| + ]); |
| + expectAsset("app|foo.txt", "foo.txt"); |
| + buildShouldSucceed(); |
| + }); |
| + |
| + test("passes an asset through when an overwriting transform is removed", |
| + () { |
| + initGraph(["app|foo.txt"], { |
| + "app": [[new RewriteTransformer("txt", "txt")]] |
| + }); |
| + |
| + updateSources(["app|foo.txt"]); |
| + expectAsset("app|foo.txt", "foo.txt"); |
| + buildShouldSucceed(); |
| + |
| + updateTransformers("app", [[]]); |
| + expectAsset("app|foo.txt", "foo"); |
| + buildShouldSucceed(); |
| + }); |
| + |
| + test("passes an asset through when its overwriting transform is removed " |
| + "during apply", () { |
| + var rewrite = new RewriteTransformer("txt", "txt"); |
| + initGraph(["app|foo.txt"], {"app": [[rewrite]]}); |
| + |
| + rewrite.pauseApply(); |
| + updateSources(["app|foo.txt"]); |
| + expectAssetDoesNotComplete("app|foo.txt"); |
| + |
| + updateTransformers("app", [[]]); |
| + rewrite.resumeApply(); |
| + expectAsset("app|foo.txt", "foo"); |
| + buildShouldSucceed(); |
| + }); |
| + |
| + test("doesn't pass an asset through when its overwriting transform is " |
| + "removed during apply if another transform overwrites it", () { |
| + var rewrite1 = new RewriteTransformer("txt", "txt"); |
| + var rewrite2 = new RewriteTransformer("txt", "txt"); |
| + initGraph(["app|foo.txt"], {"app": [[rewrite1, rewrite2]]}); |
| + |
| + rewrite1.pauseApply(); |
| + updateSources(["app|foo.txt"]); |
| + expectAssetDoesNotComplete("app|foo.txt"); |
| + // Ensure we're waiting on [rewrite1.apply] |
| + schedule(pumpEventQueue); |
| + |
| + updateTransformers("app", [[rewrite2]]); |
| + rewrite1.resumeApply(); |
| + expectAsset("app|foo.txt", "foo.txt"); |
| + buildShouldSucceed(); |
| + }); |
| + |
| + test("doesn't pass an asset through when one overwriting transform is " |
| + "removed if another transform still overwrites it", () { |
| + var rewrite = new RewriteTransformer("txt", "txt"); |
| + initGraph(["app|foo.txt"], {"app": [[ |
| + rewrite, |
| + new RewriteTransformer("txt", "txt") |
| + ]]}); |
| + |
| + updateSources(["app|foo.txt"]); |
| + // This could be either the output of [CheckContentTransformer] or |
| + // [RewriteTransformer], depending which completes first. |
| + expectAsset("app|foo.txt", anything); |
| + buildShouldFail([isAssetCollisionException("app|foo.txt")]); |
| + |
| + updateTransformers("app", [[rewrite]]); |
| + expectAsset("app|foo.txt", "foo.txt"); |
| + buildShouldSucceed(); |
| + }); |
| + }); |
| + |
| // Regression test. |
| test("a phase is added, then an input is removed and re-added", () { |
| var rewrite = new RewriteTransformer("txt", "mid"); |