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 "config.h" | 5 #include "config.h" |
6 #include "bindings/core/v8/V8Binding.h" | 6 #include "bindings/core/v8/V8Binding.h" |
7 | 7 |
8 #include "bindings/core/v8/ExceptionState.h" | 8 #include "bindings/core/v8/ExceptionState.h" |
9 #include "bindings/core/v8/ToV8.h" | 9 #include "bindings/core/v8/ToV8.h" |
10 #include "bindings/core/v8/V8BindingForTesting.h" | 10 #include "bindings/core/v8/V8BindingForTesting.h" |
(...skipping 17 matching lines...) Expand all Loading... |
28 }; | 28 }; |
29 | 29 |
30 TEST_F(V8BindingTest, toImplArray) | 30 TEST_F(V8BindingTest, toImplArray) |
31 { | 31 { |
32 { | 32 { |
33 v8::Local<v8::Array> v8StringArray = v8::Array::New(m_scope.isolate(), 2
); | 33 v8::Local<v8::Array> v8StringArray = v8::Array::New(m_scope.isolate(), 2
); |
34 EXPECT_TRUE(v8CallBoolean(v8StringArray->Set(m_scope.context(), toV8(0),
toV8("Hello, World!")))); | 34 EXPECT_TRUE(v8CallBoolean(v8StringArray->Set(m_scope.context(), toV8(0),
toV8("Hello, World!")))); |
35 EXPECT_TRUE(v8CallBoolean(v8StringArray->Set(m_scope.context(), toV8(1),
toV8("Hi, Mom!")))); | 35 EXPECT_TRUE(v8CallBoolean(v8StringArray->Set(m_scope.context(), toV8(1),
toV8("Hi, Mom!")))); |
36 | 36 |
37 NonThrowableExceptionState exceptionState; | 37 NonThrowableExceptionState exceptionState; |
38 Vector<String> stringVector = toImplArray<String>(v8StringArray, 0, m_sc
ope.isolate(), exceptionState); | 38 Vector<String> stringVector = toImplArray<Vector<String>>(v8StringArray,
0, m_scope.isolate(), exceptionState); |
39 EXPECT_EQ(2U, stringVector.size()); | 39 EXPECT_EQ(2U, stringVector.size()); |
40 EXPECT_EQ("Hello, World!", stringVector[0]); | 40 EXPECT_EQ("Hello, World!", stringVector[0]); |
41 EXPECT_EQ("Hi, Mom!", stringVector[1]); | 41 EXPECT_EQ("Hi, Mom!", stringVector[1]); |
42 } | 42 } |
43 { | 43 { |
44 v8::Local<v8::Array> v8UnsignedArray = v8::Array::New(m_scope.isolate(),
3); | 44 v8::Local<v8::Array> v8UnsignedArray = v8::Array::New(m_scope.isolate(),
3); |
45 EXPECT_TRUE(v8CallBoolean(v8UnsignedArray->Set(m_scope.context(), toV8(0
), toV8(42)))); | 45 EXPECT_TRUE(v8CallBoolean(v8UnsignedArray->Set(m_scope.context(), toV8(0
), toV8(42)))); |
46 EXPECT_TRUE(v8CallBoolean(v8UnsignedArray->Set(m_scope.context(), toV8(1
), toV8(1729)))); | 46 EXPECT_TRUE(v8CallBoolean(v8UnsignedArray->Set(m_scope.context(), toV8(1
), toV8(1729)))); |
47 EXPECT_TRUE(v8CallBoolean(v8UnsignedArray->Set(m_scope.context(), toV8(2
), toV8(31773)))); | 47 EXPECT_TRUE(v8CallBoolean(v8UnsignedArray->Set(m_scope.context(), toV8(2
), toV8(31773)))); |
48 | 48 |
49 NonThrowableExceptionState exceptionState; | 49 NonThrowableExceptionState exceptionState; |
50 Vector<unsigned> unsignedVector = toImplArray<unsigned>(v8UnsignedArray,
0, m_scope.isolate(), exceptionState); | 50 Vector<unsigned> unsignedVector = toImplArray<Vector<unsigned>>(v8Unsign
edArray, 0, m_scope.isolate(), exceptionState); |
51 EXPECT_EQ(3U, unsignedVector.size()); | 51 EXPECT_EQ(3U, unsignedVector.size()); |
52 EXPECT_EQ(42U, unsignedVector[0]); | 52 EXPECT_EQ(42U, unsignedVector[0]); |
53 EXPECT_EQ(1729U, unsignedVector[1]); | 53 EXPECT_EQ(1729U, unsignedVector[1]); |
54 EXPECT_EQ(31773U, unsignedVector[2]); | 54 EXPECT_EQ(31773U, unsignedVector[2]); |
55 } | 55 } |
56 { | 56 { |
57 const double doublePi = 3.141592653589793238; | 57 const double doublePi = 3.141592653589793238; |
58 const float floatPi = doublePi; | 58 const float floatPi = doublePi; |
59 v8::Local<v8::Array> v8RealArray = v8::Array::New(m_scope.isolate(), 1); | 59 v8::Local<v8::Array> v8RealArray = v8::Array::New(m_scope.isolate(), 1); |
60 EXPECT_TRUE(v8CallBoolean(v8RealArray->Set(m_scope.context(), toV8(0), t
oV8(doublePi)))); | 60 EXPECT_TRUE(v8CallBoolean(v8RealArray->Set(m_scope.context(), toV8(0), t
oV8(doublePi)))); |
61 | 61 |
62 NonThrowableExceptionState exceptionState; | 62 NonThrowableExceptionState exceptionState; |
63 Vector<double> doubleVector = toImplArray<double>(v8RealArray, 0, m_scop
e.isolate(), exceptionState); | 63 Vector<double> doubleVector = toImplArray<Vector<double>>(v8RealArray, 0
, m_scope.isolate(), exceptionState); |
64 EXPECT_EQ(1U, doubleVector.size()); | 64 EXPECT_EQ(1U, doubleVector.size()); |
65 EXPECT_EQ(doublePi, doubleVector[0]); | 65 EXPECT_EQ(doublePi, doubleVector[0]); |
66 | 66 |
67 Vector<float> floatVector = toImplArray<float>(v8RealArray, 0, m_scope.i
solate(), exceptionState); | 67 Vector<float> floatVector = toImplArray<Vector<float>>(v8RealArray, 0, m
_scope.isolate(), exceptionState); |
68 EXPECT_EQ(1U, floatVector.size()); | 68 EXPECT_EQ(1U, floatVector.size()); |
69 EXPECT_EQ(floatPi, floatVector[0]); | 69 EXPECT_EQ(floatPi, floatVector[0]); |
70 } | 70 } |
71 { | 71 { |
72 v8::Local<v8::Array> v8Array = v8::Array::New(m_scope.isolate(), 3); | 72 v8::Local<v8::Array> v8Array = v8::Array::New(m_scope.isolate(), 3); |
73 EXPECT_TRUE(v8CallBoolean(v8Array->Set(m_scope.context(), toV8(0), toV8(
"Vini, vidi, vici.")))); | 73 EXPECT_TRUE(v8CallBoolean(v8Array->Set(m_scope.context(), toV8(0), toV8(
"Vini, vidi, vici.")))); |
74 EXPECT_TRUE(v8CallBoolean(v8Array->Set(m_scope.context(), toV8(1), toV8(
65535)))); | 74 EXPECT_TRUE(v8CallBoolean(v8Array->Set(m_scope.context(), toV8(1), toV8(
65535)))); |
75 EXPECT_TRUE(v8CallBoolean(v8Array->Set(m_scope.context(), toV8(2), toV8(
0.125)))); | 75 EXPECT_TRUE(v8CallBoolean(v8Array->Set(m_scope.context(), toV8(2), toV8(
0.125)))); |
76 | 76 |
77 NonThrowableExceptionState exceptionState; | 77 NonThrowableExceptionState exceptionState; |
78 Vector<v8::Local<v8::Value>> v8HandleVector = toImplArray<v8::Local<v8::
Value>>(v8Array, 0, m_scope.isolate(), exceptionState); | 78 Vector<v8::Local<v8::Value>> v8HandleVector = toImplArray<Vector<v8::Loc
al<v8::Value>>>(v8Array, 0, m_scope.isolate(), exceptionState); |
79 EXPECT_EQ(3U, v8HandleVector.size()); | 79 EXPECT_EQ(3U, v8HandleVector.size()); |
80 EXPECT_EQ("Vini, vidi, vici.", toUSVString(m_scope.isolate(), v8HandleVe
ctor[0], exceptionState)); | 80 EXPECT_EQ("Vini, vidi, vici.", toUSVString(m_scope.isolate(), v8HandleVe
ctor[0], exceptionState)); |
81 EXPECT_EQ(65535U, toUInt32(m_scope.isolate(), v8HandleVector[1], NormalC
onversion, exceptionState)); | 81 EXPECT_EQ(65535U, toUInt32(m_scope.isolate(), v8HandleVector[1], NormalC
onversion, exceptionState)); |
82 | 82 |
83 Vector<ScriptValue> scriptValueVector = toImplArray<ScriptValue>(v8Array
, 0, m_scope.isolate(), exceptionState); | 83 Vector<ScriptValue> scriptValueVector = toImplArray<Vector<ScriptValue>>
(v8Array, 0, m_scope.isolate(), exceptionState); |
84 EXPECT_EQ(3U, scriptValueVector.size()); | 84 EXPECT_EQ(3U, scriptValueVector.size()); |
85 String reportOnZela; | 85 String reportOnZela; |
86 EXPECT_TRUE(scriptValueVector[0].toString(reportOnZela)); | 86 EXPECT_TRUE(scriptValueVector[0].toString(reportOnZela)); |
87 EXPECT_EQ("Vini, vidi, vici.", reportOnZela); | 87 EXPECT_EQ("Vini, vidi, vici.", reportOnZela); |
88 EXPECT_EQ(65535U, toUInt32(m_scope.isolate(), scriptValueVector[1].v8Val
ue(), NormalConversion, exceptionState)); | 88 EXPECT_EQ(65535U, toUInt32(m_scope.isolate(), scriptValueVector[1].v8Val
ue(), NormalConversion, exceptionState)); |
89 } | 89 } |
90 { | 90 { |
91 v8::Local<v8::Array> v8StringArray1 = v8::Array::New(m_scope.isolate(),
2); | 91 v8::Local<v8::Array> v8StringArray1 = v8::Array::New(m_scope.isolate(),
2); |
92 EXPECT_TRUE(v8CallBoolean(v8StringArray1->Set(m_scope.context(), toV8(0)
, toV8("foo")))); | 92 EXPECT_TRUE(v8CallBoolean(v8StringArray1->Set(m_scope.context(), toV8(0)
, toV8("foo")))); |
93 EXPECT_TRUE(v8CallBoolean(v8StringArray1->Set(m_scope.context(), toV8(1)
, toV8("bar")))); | 93 EXPECT_TRUE(v8CallBoolean(v8StringArray1->Set(m_scope.context(), toV8(1)
, toV8("bar")))); |
94 v8::Local<v8::Array> v8StringArray2 = v8::Array::New(m_scope.isolate(),
3); | 94 v8::Local<v8::Array> v8StringArray2 = v8::Array::New(m_scope.isolate(),
3); |
95 EXPECT_TRUE(v8CallBoolean(v8StringArray2->Set(m_scope.context(), toV8(0)
, toV8("x")))); | 95 EXPECT_TRUE(v8CallBoolean(v8StringArray2->Set(m_scope.context(), toV8(0)
, toV8("x")))); |
96 EXPECT_TRUE(v8CallBoolean(v8StringArray2->Set(m_scope.context(), toV8(1)
, toV8("y")))); | 96 EXPECT_TRUE(v8CallBoolean(v8StringArray2->Set(m_scope.context(), toV8(1)
, toV8("y")))); |
97 EXPECT_TRUE(v8CallBoolean(v8StringArray2->Set(m_scope.context(), toV8(2)
, toV8("z")))); | 97 EXPECT_TRUE(v8CallBoolean(v8StringArray2->Set(m_scope.context(), toV8(2)
, toV8("z")))); |
98 v8::Local<v8::Array> v8StringArrayArray = v8::Array::New(m_scope.isolate
(), 2); | 98 v8::Local<v8::Array> v8StringArrayArray = v8::Array::New(m_scope.isolate
(), 2); |
99 EXPECT_TRUE(v8CallBoolean(v8StringArrayArray->Set(m_scope.context(), toV
8(0), v8StringArray1))); | 99 EXPECT_TRUE(v8CallBoolean(v8StringArrayArray->Set(m_scope.context(), toV
8(0), v8StringArray1))); |
100 EXPECT_TRUE(v8CallBoolean(v8StringArrayArray->Set(m_scope.context(), toV
8(1), v8StringArray2))); | 100 EXPECT_TRUE(v8CallBoolean(v8StringArrayArray->Set(m_scope.context(), toV
8(1), v8StringArray2))); |
101 | 101 |
102 NonThrowableExceptionState exceptionState; | 102 NonThrowableExceptionState exceptionState; |
103 Vector<Vector<String>> stringVectorVector = toImplArray<Vector<String>>(
v8StringArrayArray, 0, m_scope.isolate(), exceptionState); | 103 Vector<Vector<String>> stringVectorVector = toImplArray<Vector<Vector<St
ring>>>(v8StringArrayArray, 0, m_scope.isolate(), exceptionState); |
104 EXPECT_EQ(2U, stringVectorVector.size()); | 104 EXPECT_EQ(2U, stringVectorVector.size()); |
105 EXPECT_EQ(2U, stringVectorVector[0].size()); | 105 EXPECT_EQ(2U, stringVectorVector[0].size()); |
106 EXPECT_EQ("foo", stringVectorVector[0][0]); | 106 EXPECT_EQ("foo", stringVectorVector[0][0]); |
107 EXPECT_EQ("bar", stringVectorVector[0][1]); | 107 EXPECT_EQ("bar", stringVectorVector[0][1]); |
108 EXPECT_EQ(3U, stringVectorVector[1].size()); | 108 EXPECT_EQ(3U, stringVectorVector[1].size()); |
109 EXPECT_EQ("x", stringVectorVector[1][0]); | 109 EXPECT_EQ("x", stringVectorVector[1][0]); |
110 EXPECT_EQ("y", stringVectorVector[1][1]); | 110 EXPECT_EQ("y", stringVectorVector[1][1]); |
111 EXPECT_EQ("z", stringVectorVector[1][2]); | 111 EXPECT_EQ("z", stringVectorVector[1][2]); |
112 } | 112 } |
113 } | 113 } |
114 | 114 |
115 } // namespace | 115 } // namespace |
116 | 116 |
117 } // namespace blink | 117 } // namespace blink |
OLD | NEW |