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

Unified Diff: third_party/pkg/angular/test/animate/animation_optimizer_spec.dart

Issue 257423008: Update all Angular libs (run update_all.sh). (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 8 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: third_party/pkg/angular/test/animate/animation_optimizer_spec.dart
diff --git a/third_party/pkg/angular/test/animate/animation_optimizer_spec.dart b/third_party/pkg/angular/test/animate/animation_optimizer_spec.dart
new file mode 100644
index 0000000000000000000000000000000000000000..d1be072c051c2aa06e458dbe727015feb4f2cd36
--- /dev/null
+++ b/third_party/pkg/angular/test/animate/animation_optimizer_spec.dart
@@ -0,0 +1,154 @@
+library animation_optimizer_spec;
+
+import '../_specs.dart';
+
+main() {
+ describe('AnimationLoop', () {
+ TestBed _;
+ AnimationOptimizer optimizer;
+ beforeEach(inject((TestBed tb, Expando expand) {
+ _ = tb;
+ optimizer = new AnimationOptimizer(expand);
+ }));
+
+ it('should prevent animations on child elements', () {
+ var animation = new NoOpAnimation();
+ _.compile('<div><div></div></div>');
+
+
+ expect(optimizer.shouldAnimate(_.rootElement.children[0])).toBeTruthy();
+ optimizer.track(animation, _.rootElement);
+ expect(optimizer.shouldAnimate(_.rootElement.children[0])).toBeFalsy();
+ optimizer.forget(animation);
+ expect(optimizer.shouldAnimate(_.rootElement.children[0])).toBeTruthy();
+ });
+
+ it('should allow multiple animations on the same element', () {
+ var animation1 = new NoOpAnimation();
+ var animation2 = new NoOpAnimation();
+ _.compile('<div><div></div></div>');
+
+ expect(optimizer.shouldAnimate(_.rootElement)).toBeTruthy();
+ optimizer.track(animation1, _.rootElement);
+ expect(optimizer.shouldAnimate(_.rootElement)).toBeTruthy();
+ optimizer.track(animation2, _.rootElement);
+ expect(optimizer.shouldAnimate(_.rootElement)).toBeTruthy();
+ expect(optimizer.shouldAnimate(_.rootElement.children[0])).toBeFalsy();
+ optimizer.forget(animation1);
+ expect(optimizer.shouldAnimate(_.rootElement.children[0])).toBeFalsy();
+ optimizer.forget(animation2);
+ expect(optimizer.shouldAnimate(_.rootElement.children[0])).toBeTruthy();
+ });
+
+ it('should always animate an element', () {
+ _.compile('<div><div></div></div>');
+ optimizer.alwaysAnimate(_.rootElement.children[0], "never");
+ expect(optimizer.shouldAnimate(_.rootElement.children[0])).toBeFalsy();
+ optimizer.alwaysAnimate(_.rootElement.children[0], "always");
+ expect(optimizer.shouldAnimate(_.rootElement.children[0])).toBeTruthy();
+ optimizer.alwaysAnimate(_.rootElement.children[0], "auto");
+ expect(optimizer.shouldAnimate(_.rootElement.children[0])).toBeTruthy();
+ });
+
+ it('alwaysAnimate should not affect children', () {
+ _.compile('<div><div></div></div>');
+ optimizer.alwaysAnimate(_.rootElement, "never");
+ expect(optimizer.shouldAnimate(_.rootElement)).toBeFalsy();
+ expect(optimizer.shouldAnimate(_.rootElement.children[0])).toBeTruthy();
+ optimizer.alwaysAnimate(_.rootElement, "always");
+ expect(optimizer.shouldAnimate(_.rootElement)).toBeTruthy();
+ expect(optimizer.shouldAnimate(_.rootElement.children[0])).toBeTruthy();
+ optimizer.alwaysAnimate(_.rootElement, "auto");
+ expect(optimizer.shouldAnimate(_.rootElement)).toBeTruthy();
+ expect(optimizer.shouldAnimate(_.rootElement.children[0])).toBeTruthy();
+ });
+
+
+ it('alwaysAnimateChildren should not affect element', () {
+ _.compile('<div><div></div></div>');
+
+ optimizer.alwaysAnimateChildren(_.rootElement, "never");
+ expect(optimizer.shouldAnimate(_.rootElement)).toBeTruthy();
+ expect(optimizer.shouldAnimate(_.rootElement.children[0])).toBeFalsy();
+
+ optimizer.alwaysAnimateChildren(_.rootElement, "always");
+ expect(optimizer.shouldAnimate(_.rootElement)).toBeTruthy();
+ expect(optimizer.shouldAnimate(_.rootElement.children[0])).toBeTruthy();
+
+ optimizer.alwaysAnimateChildren(_.rootElement, "auto");
+ expect(optimizer.shouldAnimate(_.rootElement)).toBeTruthy();
+ expect(optimizer.shouldAnimate(_.rootElement.children[0])).toBeTruthy();
+ });
+
+ it('alwaysAnimate should take priority over alwaysAnimateChildren', () {
+ _.compile('<div><div></div></div>');
+
+ optimizer.alwaysAnimateChildren(_.rootElement, "never");
+ optimizer.alwaysAnimate(_.rootElement.children[0], "always");
+ expect(optimizer.shouldAnimate(_.rootElement.children[0])).toBeTruthy();
+
+ optimizer.alwaysAnimateChildren(_.rootElement, "always");
+ optimizer.alwaysAnimate(_.rootElement.children[0], "never");
+ expect(optimizer.shouldAnimate(_.rootElement.children[0])).toBeFalsy();
+ });
+
+ it('alwaysAnimate should take priority over running animations', () {
+ _.compile('<div><div></div></div>');
+ var animation = new NoOpAnimation();
+
+ optimizer.track(animation, _.rootElement);
+ expect(optimizer.shouldAnimate(_.rootElement.children[0])).toBeFalsy();
+
+ optimizer.alwaysAnimate(_.rootElement.children[0], "always");
+ expect(optimizer.shouldAnimate(_.rootElement.children[0])).toBeTruthy();
+
+ optimizer.alwaysAnimate(_.rootElement.children[0], "auto");
+ expect(optimizer.shouldAnimate(_.rootElement.children[0])).toBeFalsy();
+
+ optimizer.forget(animation);
+ expect(optimizer.shouldAnimate(_.rootElement.children[0])).toBeTruthy();
+ });
+
+ it('alwaysAnimateChildren should take priority over running animations',
+ () {
+ _.compile('<div><div></div></div>');
+ var animation = new NoOpAnimation();
+
+ optimizer.track(animation, _.rootElement);
+ expect(optimizer.shouldAnimate(_.rootElement.children[0])).toBeFalsy();
+
+ optimizer.alwaysAnimateChildren(_.rootElement, "always");
+ expect(optimizer.shouldAnimate(_.rootElement.children[0])).toBeTruthy();
+
+ optimizer.alwaysAnimateChildren(_.rootElement, "auto");
+ expect(optimizer.shouldAnimate(_.rootElement.children[0])).toBeFalsy();
+
+ optimizer.forget(animation);
+ expect(optimizer.shouldAnimate(_.rootElement.children[0])).toBeTruthy();
+
+ optimizer.alwaysAnimateChildren(_.rootElement, "never");
+ expect(optimizer.shouldAnimate(_.rootElement.children[0])).toBeFalsy();
+ });
+
+
+ it('alwaysAnimateChildren when nested should prioritize the closest'
+ +'element up the tree.',
+ () {
+ _.compile('<div><div><div></div></div></div>');
+
+ optimizer.alwaysAnimateChildren(_.rootElement, "always");
+ expect(optimizer.shouldAnimate(_.rootElement.children[0].children[0]))
+ .toBeTruthy();
+
+ optimizer.alwaysAnimateChildren(_.rootElement.children[0], "never");
+ expect(optimizer.shouldAnimate(_.rootElement.children[0].children[0]))
+ .toBeFalsy();
+
+
+ optimizer.alwaysAnimateChildren(_.rootElement, "never");
+ optimizer.alwaysAnimateChildren(_.rootElement.children[0], "always");
+ expect(optimizer.shouldAnimate(_.rootElement.children[0].children[0]))
+ .toBeTruthy();
+ });
+ });
+}

Powered by Google App Engine
This is Rietveld 408576698