| 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();
|
| - });
|
| -}
|
|
|