Index: pkg/barback/test/package_graph/declaring_transformer_test.dart |
diff --git a/pkg/barback/test/package_graph/declaring_transformer_test.dart b/pkg/barback/test/package_graph/declaring_transformer_test.dart |
deleted file mode 100644 |
index 88f2a83c033b677ce1a32f47791916601ddb2aee..0000000000000000000000000000000000000000 |
--- a/pkg/barback/test/package_graph/declaring_transformer_test.dart |
+++ /dev/null |
@@ -1,342 +0,0 @@ |
-// Copyright (c) 2014, 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 barback.test.package_graph.declaring_transformer_test; |
- |
-import 'package:barback/barback.dart'; |
-import 'package:barback/src/utils.dart'; |
-import 'package:scheduled_test/scheduled_test.dart'; |
- |
-import '../utils.dart'; |
- |
-main() { |
- initConfig(); |
- |
- test("gets a declared output with a different path", () { |
- initGraph(["app|foo.blub"], {"app": [ |
- [new DeclaringRewriteTransformer("blub", "blab")] |
- ]}); |
- updateSources(["app|foo.blub"]); |
- expectAsset("app|foo.blab", "foo.blab"); |
- buildShouldSucceed(); |
- }); |
- |
- test("gets a declared output with the same path", () { |
- initGraph(["app|foo.blub"], {"app": [ |
- [new DeclaringRewriteTransformer("blub", "blub")] |
- ]}); |
- updateSources(["app|foo.blub"]); |
- expectAsset("app|foo.blub", "foo.blub"); |
- buildShouldSucceed(); |
- }); |
- |
- test("gets a passed-through asset", () { |
- initGraph(["app|foo.blub"], {"app": [ |
- [new DeclaringRewriteTransformer("blub", "blab")] |
- ]}); |
- updateSources(["app|foo.blub"]); |
- expectAsset("app|foo.blub", "foo"); |
- buildShouldSucceed(); |
- }); |
- |
- test("doesn't get a consumed asset", () { |
- initGraph(["app|foo.blub"], {"app": [ |
- [new DeclaringRewriteTransformer("blub", "blab")..consumePrimary = true] |
- ]}); |
- updateSources(["app|foo.blub"]); |
- expectNoAsset("app|foo.blub"); |
- buildShouldSucceed(); |
- }); |
- |
- test("gets a passed-through asset before apply is finished", () { |
- var transformer = new DeclaringRewriteTransformer("blub", "blab"); |
- initGraph(["app|foo.blub"], {"app": [[transformer]]}); |
- |
- transformer.pauseApply(); |
- updateSources(["app|foo.blub"]); |
- expectAsset("app|foo.blub", "foo"); |
- |
- transformer.resumeApply(); |
- buildShouldSucceed(); |
- }); |
- |
- test("fails to get a consumed asset before apply is finished", () { |
- var transformer = new DeclaringRewriteTransformer("blub", "blab") |
- ..consumePrimary = true; |
- initGraph(["app|foo.blub"], {"app": [[transformer]]}); |
- |
- transformer.pauseApply(); |
- updateSources(["app|foo.blub"]); |
- expectNoAsset("app|foo.blub"); |
- |
- transformer.resumeApply(); |
- buildShouldSucceed(); |
- }); |
- |
- test("blocks on getting a declared asset that wasn't generated last run", () { |
- var transformer = new DeclaringCheckContentAndRenameTransformer( |
- oldExtension: "txt", oldContent: "yes", |
- newExtension: "out", newContent: "done"); |
- initGraph({"app|foo.txt": "no"}, {"app": [[transformer]]}); |
- |
- updateSources(["app|foo.txt"]); |
- expectNoAsset("app|foo.out"); |
- buildShouldSucceed(); |
- |
- // The transform should remember that foo.out was declared, so it should |
- // expect that it might still be generated even though it wasn't last time. |
- transformer.pauseApply(); |
- modifyAsset("app|foo.txt", "yes"); |
- updateSources(["app|foo.txt"]); |
- expectAssetDoesNotComplete("app|foo.out"); |
- |
- transformer.resumeApply(); |
- expectAsset("app|foo.out", "done"); |
- buildShouldSucceed(); |
- }); |
- |
- test("doesn't block on on getting an undeclared asset that wasn't generated " |
- "last run", () { |
- var transformer = new DeclaringCheckContentAndRenameTransformer( |
- oldExtension: "txt", oldContent: "yes", |
- newExtension: "out", newContent: "done"); |
- initGraph({"app|foo.txt": "no"}, {"app": [[transformer]]}); |
- |
- updateSources(["app|foo.txt"]); |
- expectNoAsset("app|foo.out"); |
- buildShouldSucceed(); |
- |
- transformer.pauseApply(); |
- modifyAsset("app|foo.txt", "yes"); |
- updateSources(["app|foo.txt"]); |
- expectNoAsset("app|undeclared.out"); |
- |
- transformer.resumeApply(); |
- buildShouldSucceed(); |
- }); |
- |
- test("fails to get a consumed asset before apply is finished when a sibling " |
- "has finished applying", () { |
- var transformer = new DeclaringRewriteTransformer("blub", "blab") |
- ..consumePrimary = true; |
- initGraph(["app|foo.blub", "app|foo.txt"], {"app": [[ |
- transformer, |
- new RewriteTransformer("txt", "out") |
- ]]}); |
- |
- transformer.pauseApply(); |
- updateSources(["app|foo.blub", "app|foo.txt"]); |
- expectAsset("app|foo.out", "foo.out"); |
- expectNoAsset("app|foo.blub"); |
- |
- transformer.resumeApply(); |
- buildShouldSucceed(); |
- }); |
- |
- test("blocks getting a consumed asset before apply is finished when a " |
- "sibling hasn't finished applying", () { |
- var declaring = new DeclaringRewriteTransformer("blub", "blab") |
- ..consumePrimary = true; |
- var eager = new RewriteTransformer("txt", "out"); |
- initGraph(["app|foo.blub", "app|foo.txt"], {"app": [[declaring, eager]]}); |
- |
- declaring.pauseApply(); |
- eager.pauseApply(); |
- updateSources(["app|foo.blub", "app|foo.txt"]); |
- expectAssetDoesNotComplete("app|foo.blub"); |
- |
- declaring.resumeApply(); |
- eager.resumeApply(); |
- expectNoAsset("app|foo.blub"); |
- buildShouldSucceed(); |
- }); |
- |
- test("waits until apply is finished to get an overwritten asset", () { |
- var transformer = new DeclaringRewriteTransformer("blub", "blub"); |
- initGraph(["app|foo.blub"], {"app": [[transformer]]}); |
- |
- transformer.pauseApply(); |
- updateSources(["app|foo.blub"]); |
- expectAssetDoesNotComplete("app|foo.blub"); |
- |
- transformer.resumeApply(); |
- expectAsset("app|foo.blub", "foo.blub"); |
- buildShouldSucceed(); |
- }); |
- |
- test("a declaring transformer following a lazy transformer runs eagerly once " |
- "its input is available", () { |
- var declaring = new DeclaringRewriteTransformer("two", "three"); |
- initGraph(["app|foo.in"], {"app": [ |
- [new LazyAssetsTransformer(["app|out.one", "app|out.two"])], |
- [declaring] |
- ]}); |
- |
- updateSources(["app|foo.in"]); |
- // Give the transformers time to declare their assets. |
- schedule(pumpEventQueue); |
- |
- expectAsset("app|out.one", "app|out.one"); |
- buildShouldSucceed(); |
- |
- expect(declaring.numRuns, completion(equals(1))); |
- }); |
- |
- test("a declaring transformer following a lazy transformer doesn't re-run if " |
- "its input becomes available and then unavailable", () { |
- var declaring = new DeclaringRewriteTransformer("two", "three"); |
- initGraph(["app|foo.in"], {"app": [ |
- [new LazyAssetsTransformer(["app|out.one", "app|out.two"])], |
- [declaring] |
- ]}); |
- |
- declaring.pauseApply(); |
- updateSources(["app|foo.in"]); |
- // Give the transformers time to declare their assets. |
- schedule(pumpEventQueue); |
- |
- // Start [declaring] running, because its input became available. |
- expectAsset("app|out.one", "app|out.one"); |
- |
- // Make sure we're blocking on [declaring.apply]. |
- schedule(pumpEventQueue); |
- |
- // Now [declaring]'s input is dirty, so it shouldn't re-run without an |
- // explicit request. |
- updateSources(["app|foo.in"]); |
- declaring.resumeApply(); |
- buildShouldSucceed(); |
- |
- // [declaring] should only have run once, despite its input changing. After |
- // the first run, it should be awaiting a force() call. |
- expect(declaring.numRuns, completion(equals(1))); |
- |
- // Once we make a request, [declaring] should force the lazy transformer and |
- // then run itself. |
- expectAsset("app|out.three", "app|out.two.three"); |
- buildShouldSucceed(); |
- |
- // Now [declaring] should have run twice. This ensures that it didn't use |
- // its original output for some reason. |
- expect(declaring.numRuns, completion(equals(2))); |
- }); |
- |
- test("a declaring transformer following a lazy transformer does re-run if " |
- "its input becomes available, it's forced, and then its input becomes " |
- "unavailable", () { |
- var declaring = new DeclaringRewriteTransformer("two", "three"); |
- initGraph(["app|foo.in"], {"app": [ |
- [new LazyAssetsTransformer(["app|out.one", "app|out.two"])], |
- [declaring] |
- ]}); |
- |
- declaring.pauseApply(); |
- updateSources(["app|foo.in"]); |
- |
- // Give the transformers time to declare their assets. |
- schedule(pumpEventQueue); |
- |
- // Start [declaring] running, because its input became available. |
- expectAsset("app|out.one", "app|out.one"); |
- |
- // This shouldn't complete because [declaring.apply] is paused, but it |
- // should force the transformer. |
- expectAssetDoesNotComplete("app|out.three"); |
- |
- // Make sure we're blocking on [declaring.apply] |
- schedule(pumpEventQueue); |
- |
- // Now [declaring]'s input is dirty, so it shouldn't re-run without an |
- // explicit request. |
- updateSources(["app|foo.in"]); |
- declaring.resumeApply(); |
- buildShouldSucceed(); |
- |
- // [declaring] should have run twice, once for its original input and once |
- // after the input changed because it was forced. |
- expect(declaring.numRuns, completion(equals(2))); |
- }); |
- |
- group("with an error in declareOutputs", () { |
- test("still runs apply", () { |
- initGraph(["app|foo.txt"], {"app": [[ |
- new DeclaringBadTransformer("app|out.txt", |
- declareError: true, applyError: false) |
- ]]}); |
- |
- updateSources(["app|foo.txt"]); |
- expectAsset("app|out.txt", "bad out"); |
- expectAsset("app|foo.txt", "foo"); |
- buildShouldFail([isTransformerException(BadTransformer.ERROR)]); |
- }); |
- |
- test("waits for apply to complete before passing through the input even if " |
- "consumePrimary was called", () { |
- var transformer = new DeclaringBadTransformer("app|out.txt", |
- declareError: true, applyError: false)..consumePrimary = true; |
- initGraph(["app|foo.txt"], {"app": [[transformer]]}); |
- |
- transformer.pauseApply(); |
- updateSources(["app|foo.txt"]); |
- expectAssetDoesNotComplete("app|out.txt"); |
- expectAssetDoesNotComplete("app|foo.txt"); |
- |
- transformer.resumeApply(); |
- expectAsset("app|out.txt", "bad out"); |
- expectNoAsset("app|foo.txt"); |
- buildShouldFail([isTransformerException(BadTransformer.ERROR)]); |
- }); |
- }); |
- |
- test("with an error in apply still passes through the input", () { |
- initGraph(["app|foo.txt"], {"app": [[ |
- new DeclaringBadTransformer("app|out.txt", |
- declareError: false, applyError: true) |
- ]]}); |
- |
- updateSources(["app|foo.txt"]); |
- expectNoAsset("app|out.txt"); |
- expectAsset("app|foo.txt", "foo"); |
- buildShouldFail([isTransformerException(BadTransformer.ERROR)]); |
- }); |
- |
- test("can emit outputs it didn't declare", () { |
- initGraph(["app|foo.txt"], {"app": [ |
- [new DeclareAssetsTransformer([], emitted: ["app|out.txt"])] |
- ]}); |
- |
- updateSources(["app|foo.txt"]); |
- // There's probably going to be some time when "out.txt" is unavailable, |
- // since it was undeclared. |
- schedule(pumpEventQueue); |
- expectAsset("app|out.txt", "app|out.txt"); |
- buildShouldSucceed(); |
- }); |
- |
- test("can overwrite the primary input even if it declared that it wouldn't", |
- () { |
- var transformer = new DeclareAssetsTransformer( |
- [], emitted: ["app|foo.txt"]); |
- initGraph(["app|foo.txt"], {"app": [[transformer]]}); |
- |
- transformer.pauseApply(); |
- updateSources(["app|foo.txt"]); |
- expectAsset("app|foo.txt", "foo"); |
- |
- transformer.resumeApply(); |
- schedule(pumpEventQueue); |
- expectAsset("app|foo.txt", "app|foo.txt"); |
- buildShouldSucceed(); |
- }); |
- |
- test("can declare outputs it doesn't emit", () { |
- initGraph(["app|foo.txt"], {"app": [ |
- [new DeclareAssetsTransformer(["app|out.txt"], emitted: [])] |
- ]}); |
- |
- updateSources(["app|foo.txt"]); |
- expectNoAsset("app|out.txt"); |
- buildShouldSucceed(); |
- }); |
-} |