| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "services/view_manager/scheduled_animation_group.h" | 5 #include "services/view_manager/scheduled_animation_group.h" |
| 6 | 6 |
| 7 #include "mojo/converters/geometry/geometry_type_converters.h" | 7 #include "mojo/converters/geometry/geometry_type_converters.h" |
| 8 #include "mojo/services/view_manager/public/interfaces/animations.mojom.h" | 8 #include "mojo/services/view_manager/public/interfaces/animations.mojom.h" |
| 9 #include "services/view_manager/server_view.h" | 9 #include "services/view_manager/server_view.h" |
| 10 #include "services/view_manager/test_server_view_delegate.h" | 10 #include "services/view_manager/test_server_view_delegate.h" |
| 11 #include "testing/gtest/include/gtest/gtest.h" | 11 #include "testing/gtest/include/gtest/gtest.h" |
| 12 | 12 |
| 13 using mojo::ANIMATION_PROPERTY_NONE; | 13 using mojo::AnimationProperty; |
| 14 using mojo::ANIMATION_PROPERTY_OPACITY; | 14 using mojo::AnimationTweenType; |
| 15 using mojo::ANIMATION_PROPERTY_TRANSFORM; | |
| 16 using mojo::ANIMATION_TWEEN_TYPE_LINEAR; | |
| 17 using mojo::AnimationGroup; | 15 using mojo::AnimationGroup; |
| 18 using mojo::AnimationSequence; | 16 using mojo::AnimationSequence; |
| 19 using mojo::AnimationElement; | 17 using mojo::AnimationElement; |
| 20 using mojo::AnimationValue; | 18 using mojo::AnimationValue; |
| 21 | 19 |
| 22 namespace view_manager { | 20 namespace view_manager { |
| 23 namespace { | 21 namespace { |
| 24 | 22 |
| 25 bool IsAnimationGroupValid(const AnimationGroup& transport_group) { | 23 bool IsAnimationGroupValid(const AnimationGroup& transport_group) { |
| 26 TestServerViewDelegate view_delegate; | 24 TestServerViewDelegate view_delegate; |
| (...skipping 12 matching lines...) Expand all Loading... |
| 39 EXPECT_FALSE(IsAnimationGroupValid(group)); | 37 EXPECT_FALSE(IsAnimationGroupValid(group)); |
| 40 | 38 |
| 41 group.sequences.push_back(AnimationSequence::New()); | 39 group.sequences.push_back(AnimationSequence::New()); |
| 42 | 40 |
| 43 // Sequence with no elements is not valid. | 41 // Sequence with no elements is not valid. |
| 44 EXPECT_FALSE(IsAnimationGroupValid(group)); | 42 EXPECT_FALSE(IsAnimationGroupValid(group)); |
| 45 | 43 |
| 46 AnimationSequence& sequence = *(group.sequences[0]); | 44 AnimationSequence& sequence = *(group.sequences[0]); |
| 47 sequence.elements.push_back(AnimationElement::New()); | 45 sequence.elements.push_back(AnimationElement::New()); |
| 48 AnimationElement& element = *(sequence.elements[0]); | 46 AnimationElement& element = *(sequence.elements[0]); |
| 49 element.property = ANIMATION_PROPERTY_OPACITY; | 47 element.property = AnimationProperty::OPACITY; |
| 50 element.tween_type = ANIMATION_TWEEN_TYPE_LINEAR; | 48 element.tween_type = AnimationTweenType::LINEAR; |
| 51 | 49 |
| 52 // Element with no target_value is not valid. | 50 // Element with no target_value is not valid. |
| 53 EXPECT_FALSE(IsAnimationGroupValid(group)); | 51 EXPECT_FALSE(IsAnimationGroupValid(group)); |
| 54 | 52 |
| 55 // Opacity must be between 0 and 1. | 53 // Opacity must be between 0 and 1. |
| 56 element.target_value = AnimationValue::New(); | 54 element.target_value = AnimationValue::New(); |
| 57 element.target_value->float_value = 2.5f; | 55 element.target_value->float_value = 2.5f; |
| 58 EXPECT_FALSE(IsAnimationGroupValid(group)); | 56 EXPECT_FALSE(IsAnimationGroupValid(group)); |
| 59 | 57 |
| 60 element.target_value->float_value = .5f; | 58 element.target_value->float_value = .5f; |
| 61 EXPECT_TRUE(IsAnimationGroupValid(group)); | 59 EXPECT_TRUE(IsAnimationGroupValid(group)); |
| 62 | 60 |
| 63 // Bogus start value. | 61 // Bogus start value. |
| 64 element.start_value = AnimationValue::New(); | 62 element.start_value = AnimationValue::New(); |
| 65 element.start_value->float_value = 2.5f; | 63 element.start_value->float_value = 2.5f; |
| 66 EXPECT_FALSE(IsAnimationGroupValid(group)); | 64 EXPECT_FALSE(IsAnimationGroupValid(group)); |
| 67 | 65 |
| 68 element.start_value->float_value = .5f; | 66 element.start_value->float_value = .5f; |
| 69 EXPECT_TRUE(IsAnimationGroupValid(group)); | 67 EXPECT_TRUE(IsAnimationGroupValid(group)); |
| 70 | 68 |
| 71 // Bogus transform. | 69 // Bogus transform. |
| 72 element.property = ANIMATION_PROPERTY_TRANSFORM; | 70 element.property = AnimationProperty::TRANSFORM; |
| 73 EXPECT_FALSE(IsAnimationGroupValid(group)); | 71 EXPECT_FALSE(IsAnimationGroupValid(group)); |
| 74 element.start_value->transform = mojo::Transform::From(gfx::Transform()); | 72 element.start_value->transform = mojo::Transform::From(gfx::Transform()); |
| 75 EXPECT_FALSE(IsAnimationGroupValid(group)); | 73 EXPECT_FALSE(IsAnimationGroupValid(group)); |
| 76 element.target_value->transform = mojo::Transform::From(gfx::Transform()); | 74 element.target_value->transform = mojo::Transform::From(gfx::Transform()); |
| 77 EXPECT_TRUE(IsAnimationGroupValid(group)); | 75 EXPECT_TRUE(IsAnimationGroupValid(group)); |
| 78 | 76 |
| 79 // Add another empty sequence, should be invalid again. | 77 // Add another empty sequence, should be invalid again. |
| 80 group.sequences.push_back(AnimationSequence::New()); | 78 group.sequences.push_back(AnimationSequence::New()); |
| 81 EXPECT_FALSE(IsAnimationGroupValid(group)); | 79 EXPECT_FALSE(IsAnimationGroupValid(group)); |
| 82 | 80 |
| 83 AnimationSequence& sequence2 = *(group.sequences[1]); | 81 AnimationSequence& sequence2 = *(group.sequences[1]); |
| 84 sequence2.elements.push_back(AnimationElement::New()); | 82 sequence2.elements.push_back(AnimationElement::New()); |
| 85 AnimationElement& element2 = *(sequence2.elements[0]); | 83 AnimationElement& element2 = *(sequence2.elements[0]); |
| 86 element2.property = ANIMATION_PROPERTY_OPACITY; | 84 element2.property = AnimationProperty::OPACITY; |
| 87 element2.tween_type = ANIMATION_TWEEN_TYPE_LINEAR; | 85 element2.tween_type = AnimationTweenType::LINEAR; |
| 88 | 86 |
| 89 // Element with no target_value is not valid. | 87 // Element with no target_value is not valid. |
| 90 EXPECT_FALSE(IsAnimationGroupValid(group)); | 88 EXPECT_FALSE(IsAnimationGroupValid(group)); |
| 91 | 89 |
| 92 element2.property = ANIMATION_PROPERTY_NONE; | 90 element2.property = AnimationProperty::NONE; |
| 93 EXPECT_TRUE(IsAnimationGroupValid(group)); | 91 EXPECT_TRUE(IsAnimationGroupValid(group)); |
| 94 } | 92 } |
| 95 | 93 |
| 96 } // namespace view_manager | 94 } // namespace view_manager |
| OLD | NEW |