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

Side by Side Diff: Source/bindings/core/v8/V8BindingTest.cpp

Issue 1125683002: Avoid nearly identical toImplArray() and toImplHeapArray() (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 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 unified diff | Download patch
« no previous file with comments | « Source/bindings/core/v8/V8Binding.h ('k') | Source/bindings/scripts/v8_types.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
OLDNEW
« no previous file with comments | « Source/bindings/core/v8/V8Binding.h ('k') | Source/bindings/scripts/v8_types.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698