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

Unified Diff: third_party/WebKit/Source/core/animation/TimingInputTest.cpp

Issue 2875673005: Move "id" from KeyframeEffectOptions to KeyframeAnimationOptions and (Closed)
Patch Set: Make const ptr. Created 3 years, 7 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/WebKit/Source/core/animation/TimingInputTest.cpp
diff --git a/third_party/WebKit/Source/core/animation/TimingInputTest.cpp b/third_party/WebKit/Source/core/animation/TimingInputTest.cpp
index 5e9f6d8c477587c347a291a0f924a25f7a6e59a8..11faae80289099fb36e4963d9cc4bfe95e10a179 100644
--- a/third_party/WebKit/Source/core/animation/TimingInputTest.cpp
+++ b/third_party/WebKit/Source/core/animation/TimingInputTest.cpp
@@ -5,6 +5,7 @@
#include "core/animation/TimingInput.h"
#include "bindings/core/v8/V8BindingForTesting.h"
+#include "bindings/core/v8/V8KeyframeAnimationOptions.h"
#include "bindings/core/v8/V8KeyframeEffectOptions.h"
#include "core/animation/AnimationEffectTiming.h"
#include "core/animation/AnimationTestHelper.h"
@@ -17,38 +18,61 @@ namespace blink {
Timing ApplyTimingInputNumber(v8::Isolate* isolate,
String timing_property,
double timing_property_value,
- bool& timing_conversion_success) {
+ bool& timing_conversion_success,
+ bool is_keyframeeffectoptions = true) {
v8::Local<v8::Object> timing_input = v8::Object::New(isolate);
SetV8ObjectPropertyAsNumber(isolate, timing_input, timing_property,
timing_property_value);
- KeyframeEffectOptions timing_input_dictionary;
DummyExceptionStateForTesting exception_state;
- V8KeyframeEffectOptions::toImpl(isolate, timing_input,
- timing_input_dictionary, exception_state);
Timing result;
- timing_conversion_success =
- TimingInput::Convert(timing_input_dictionary, result, nullptr,
- exception_state) &&
- !exception_state.HadException();
+ if (is_keyframeeffectoptions) {
+ KeyframeEffectOptions timing_input_dictionary;
+ V8KeyframeEffectOptions::toImpl(isolate, timing_input,
+ timing_input_dictionary, exception_state);
+ timing_conversion_success =
+ TimingInput::Convert(timing_input_dictionary, result, nullptr,
+ exception_state) &&
+ !exception_state.HadException();
+ } else {
+ KeyframeAnimationOptions timing_input_dictionary;
+ V8KeyframeAnimationOptions::toImpl(
+ isolate, timing_input, timing_input_dictionary, exception_state);
+ timing_conversion_success =
+ TimingInput::Convert(timing_input_dictionary, result, nullptr,
+ exception_state) &&
+ !exception_state.HadException();
+ }
return result;
}
Timing ApplyTimingInputString(v8::Isolate* isolate,
String timing_property,
String timing_property_value,
- bool& timing_conversion_success) {
+ bool& timing_conversion_success,
+ bool is_keyframeeffectoptions = true) {
v8::Local<v8::Object> timing_input = v8::Object::New(isolate);
SetV8ObjectPropertyAsString(isolate, timing_input, timing_property,
timing_property_value);
- KeyframeEffectOptions timing_input_dictionary;
+
DummyExceptionStateForTesting exception_state;
- V8KeyframeEffectOptions::toImpl(isolate, timing_input,
- timing_input_dictionary, exception_state);
Timing result;
- timing_conversion_success =
- TimingInput::Convert(timing_input_dictionary, result, nullptr,
- exception_state) &&
- !exception_state.HadException();
+ if (is_keyframeeffectoptions) {
+ KeyframeEffectOptions timing_input_dictionary;
+ V8KeyframeEffectOptions::toImpl(isolate, timing_input,
+ timing_input_dictionary, exception_state);
+ timing_conversion_success =
+ TimingInput::Convert(timing_input_dictionary, result, nullptr,
+ exception_state) &&
+ !exception_state.HadException();
+ } else {
+ KeyframeAnimationOptions timing_input_dictionary;
+ V8KeyframeAnimationOptions::toImpl(
+ isolate, timing_input, timing_input_dictionary, exception_state);
+ timing_conversion_success =
+ TimingInput::Convert(timing_input_dictionary, result, nullptr,
+ exception_state) &&
+ !exception_state.HadException();
+ }
return result;
}
@@ -81,6 +105,35 @@ TEST(AnimationTimingInputTest, TimingInputStartDelay) {
.start_delay);
}
+TEST(AnimationTimingInputTest, TimingInputStartDelayKeyframeAnimationOptions) {
+ V8TestingScope scope;
+ bool ignored_success;
+ EXPECT_EQ(1.1, ApplyTimingInputNumber(scope.GetIsolate(), "delay", 1100,
+ ignored_success, false)
+ .start_delay);
+ EXPECT_EQ(-1, ApplyTimingInputNumber(scope.GetIsolate(), "delay", -1000,
+ ignored_success, false)
+ .start_delay);
+ EXPECT_EQ(1, ApplyTimingInputString(scope.GetIsolate(), "delay", "1000",
+ ignored_success, false)
+ .start_delay);
+ EXPECT_EQ(0, ApplyTimingInputString(scope.GetIsolate(), "delay", "1s",
+ ignored_success, false)
+ .start_delay);
+ EXPECT_EQ(0, ApplyTimingInputString(scope.GetIsolate(), "delay", "Infinity",
+ ignored_success, false)
+ .start_delay);
+ EXPECT_EQ(0, ApplyTimingInputString(scope.GetIsolate(), "delay", "-Infinity",
+ ignored_success, false)
+ .start_delay);
+ EXPECT_EQ(0, ApplyTimingInputString(scope.GetIsolate(), "delay", "NaN",
+ ignored_success, false)
+ .start_delay);
+ EXPECT_EQ(0, ApplyTimingInputString(scope.GetIsolate(), "delay", "rubbish",
+ ignored_success, false)
+ .start_delay);
+}
+
TEST(AnimationTimingInputTest, TimingInputEndDelay) {
V8TestingScope scope;
bool ignored_success;
@@ -375,4 +428,23 @@ TEST(AnimationTimingInputTest, TimingInputEmpty) {
EXPECT_EQ(*control_timing.timing_function, *updated_timing.timing_function);
}
+TEST(AnimationTimingInputTest, TimingInputEmptyKeyframeAnimationOptions) {
+ DummyExceptionStateForTesting exception_state;
+ Timing control_timing;
+ Timing updated_timing;
+ bool success = TimingInput::Convert(KeyframeAnimationOptions(),
+ updated_timing, nullptr, exception_state);
+ EXPECT_TRUE(success);
+ EXPECT_FALSE(exception_state.HadException());
+
+ EXPECT_EQ(control_timing.start_delay, updated_timing.start_delay);
+ EXPECT_EQ(control_timing.fill_mode, updated_timing.fill_mode);
+ EXPECT_EQ(control_timing.iteration_start, updated_timing.iteration_start);
+ EXPECT_EQ(control_timing.iteration_count, updated_timing.iteration_count);
+ EXPECT_TRUE(std::isnan(updated_timing.iteration_duration));
+ EXPECT_EQ(control_timing.playback_rate, updated_timing.playback_rate);
+ EXPECT_EQ(control_timing.direction, updated_timing.direction);
+ EXPECT_EQ(*control_timing.timing_function, *updated_timing.timing_function);
+}
+
} // namespace blink
« no previous file with comments | « third_party/WebKit/Source/core/animation/TimingInput.cpp ('k') | third_party/WebKit/Source/core/core_idl_files.gni » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698