| 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 |