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

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

Issue 555133003: Use ExceptionState to throw exceptions when converting arrays (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: rebased Created 6 years, 3 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.cpp ('k') | Source/bindings/core/v8/V8StringResource.h » ('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 "core/testing/GarbageCollectedScriptWrappable.h" 9 #include "core/testing/GarbageCollectedScriptWrappable.h"
10 #include "core/testing/RefCountedScriptWrappable.h" 10 #include "core/testing/RefCountedScriptWrappable.h"
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after
298 CHECK_TOV8VALUE("5678", handleValue); 298 CHECK_TOV8VALUE("5678", handleValue);
299 } 299 }
300 300
301 TEST_F(V8ValueTraitsTest, toImplArray) 301 TEST_F(V8ValueTraitsTest, toImplArray)
302 { 302 {
303 { 303 {
304 v8::Handle<v8::Array> v8StringArray = v8::Array::New(m_scope.isolate(), 2); 304 v8::Handle<v8::Array> v8StringArray = v8::Array::New(m_scope.isolate(), 2);
305 v8StringArray->Set(toV8Value(0), toV8Value("Hello, World!")); 305 v8StringArray->Set(toV8Value(0), toV8Value("Hello, World!"));
306 v8StringArray->Set(toV8Value(1), toV8Value("Hi, Mom!")); 306 v8StringArray->Set(toV8Value(1), toV8Value("Hi, Mom!"));
307 307
308 Vector<String> stringVector = toImplArray<String>(v8StringArray, 0, m_sc ope.isolate()); 308 NonThrowableExceptionState exceptionState;
309 Vector<String> stringVector = toImplArray<String>(v8StringArray, 0, m_sc ope.isolate(), exceptionState);
309 EXPECT_EQ(2U, stringVector.size()); 310 EXPECT_EQ(2U, stringVector.size());
310 EXPECT_EQ("Hello, World!", stringVector[0]); 311 EXPECT_EQ("Hello, World!", stringVector[0]);
311 EXPECT_EQ("Hi, Mom!", stringVector[1]); 312 EXPECT_EQ("Hi, Mom!", stringVector[1]);
312 } 313 }
313 { 314 {
314 v8::Handle<v8::Array> v8UnsignedArray = v8::Array::New(m_scope.isolate() , 3); 315 v8::Handle<v8::Array> v8UnsignedArray = v8::Array::New(m_scope.isolate() , 3);
315 v8UnsignedArray->Set(toV8Value(0), toV8Value(42)); 316 v8UnsignedArray->Set(toV8Value(0), toV8Value(42));
316 v8UnsignedArray->Set(toV8Value(1), toV8Value(1729)); 317 v8UnsignedArray->Set(toV8Value(1), toV8Value(1729));
317 v8UnsignedArray->Set(toV8Value(2), toV8Value(31773)); 318 v8UnsignedArray->Set(toV8Value(2), toV8Value(31773));
318 319
319 Vector<unsigned> unsignedVector = toImplArray<unsigned>(v8UnsignedArray, 0, m_scope.isolate()); 320 NonThrowableExceptionState exceptionState;
321 Vector<unsigned> unsignedVector = toImplArray<unsigned>(v8UnsignedArray, 0, m_scope.isolate(), exceptionState);
320 EXPECT_EQ(3U, unsignedVector.size()); 322 EXPECT_EQ(3U, unsignedVector.size());
321 EXPECT_EQ(42U, unsignedVector[0]); 323 EXPECT_EQ(42U, unsignedVector[0]);
322 EXPECT_EQ(1729U, unsignedVector[1]); 324 EXPECT_EQ(1729U, unsignedVector[1]);
323 EXPECT_EQ(31773U, unsignedVector[2]); 325 EXPECT_EQ(31773U, unsignedVector[2]);
324 } 326 }
325 { 327 {
326 const double doublePi = 3.141592653589793238; 328 const double doublePi = 3.141592653589793238;
327 const float floatPi = doublePi; 329 const float floatPi = doublePi;
328 v8::Handle<v8::Array> v8RealArray = v8::Array::New(m_scope.isolate(), 1) ; 330 v8::Handle<v8::Array> v8RealArray = v8::Array::New(m_scope.isolate(), 1) ;
329 v8RealArray->Set(toV8Value(0), toV8Value(doublePi)); 331 v8RealArray->Set(toV8Value(0), toV8Value(doublePi));
330 332
331 Vector<double> doubleVector = toImplArray<double>(v8RealArray, 0, m_scop e.isolate()); 333 NonThrowableExceptionState exceptionState;
334 Vector<double> doubleVector = toImplArray<double>(v8RealArray, 0, m_scop e.isolate(), exceptionState);
332 EXPECT_EQ(1U, doubleVector.size()); 335 EXPECT_EQ(1U, doubleVector.size());
333 EXPECT_EQ(doublePi, doubleVector[0]); 336 EXPECT_EQ(doublePi, doubleVector[0]);
334 337
335 Vector<float> floatVector = toImplArray<float>(v8RealArray, 0, m_scope.i solate()); 338 Vector<float> floatVector = toImplArray<float>(v8RealArray, 0, m_scope.i solate(), exceptionState);
336 EXPECT_EQ(1U, floatVector.size()); 339 EXPECT_EQ(1U, floatVector.size());
337 EXPECT_EQ(floatPi, floatVector[0]); 340 EXPECT_EQ(floatPi, floatVector[0]);
338 } 341 }
339 { 342 {
340 v8::Handle<v8::Array> v8Array = v8::Array::New(m_scope.isolate(), 3); 343 v8::Handle<v8::Array> v8Array = v8::Array::New(m_scope.isolate(), 3);
341 v8Array->Set(toV8Value(0), toV8Value("Vini, vidi, vici.")); 344 v8Array->Set(toV8Value(0), toV8Value("Vini, vidi, vici."));
342 v8Array->Set(toV8Value(1), toV8Value(65535)); 345 v8Array->Set(toV8Value(1), toV8Value(65535));
343 v8Array->Set(toV8Value(2), toV8Value(0.125)); 346 v8Array->Set(toV8Value(2), toV8Value(0.125));
344 347
345 Vector<v8::Handle<v8::Value> > v8HandleVector = toImplArray<v8::Handle<v 8::Value> >(v8Array, 0, m_scope.isolate()); 348 NonThrowableExceptionState exceptionState;
349 Vector<v8::Handle<v8::Value> > v8HandleVector = toImplArray<v8::Handle<v 8::Value> >(v8Array, 0, m_scope.isolate(), exceptionState);
346 EXPECT_EQ(3U, v8HandleVector.size()); 350 EXPECT_EQ(3U, v8HandleVector.size());
347 NonThrowableExceptionState exceptionState;
348 EXPECT_EQ("Vini, vidi, vici.", toScalarValueString(v8HandleVector[0], ex ceptionState)); 351 EXPECT_EQ("Vini, vidi, vici.", toScalarValueString(v8HandleVector[0], ex ceptionState));
349 EXPECT_EQ(65535U, toUInt32(v8HandleVector[1])); 352 EXPECT_EQ(65535U, toUInt32(v8HandleVector[1]));
350 EXPECT_EQ(0.125, toFloat(v8HandleVector[2])); 353 EXPECT_EQ(0.125, toFloat(v8HandleVector[2]));
351 354
352 Vector<ScriptValue> scriptValueVector = toImplArray<ScriptValue>(v8Array , 0, m_scope.isolate()); 355 Vector<ScriptValue> scriptValueVector = toImplArray<ScriptValue>(v8Array , 0, m_scope.isolate(), exceptionState);
353 EXPECT_EQ(3U, scriptValueVector.size()); 356 EXPECT_EQ(3U, scriptValueVector.size());
354 String reportOnZela; 357 String reportOnZela;
355 EXPECT_TRUE(scriptValueVector[0].toString(reportOnZela)); 358 EXPECT_TRUE(scriptValueVector[0].toString(reportOnZela));
356 EXPECT_EQ("Vini, vidi, vici.", reportOnZela); 359 EXPECT_EQ("Vini, vidi, vici.", reportOnZela);
357 EXPECT_EQ(65535U, toUInt32(scriptValueVector[1].v8Value())); 360 EXPECT_EQ(65535U, toUInt32(scriptValueVector[1].v8Value()));
358 EXPECT_EQ(0.125, toFloat(scriptValueVector[2].v8Value())); 361 EXPECT_EQ(0.125, toFloat(scriptValueVector[2].v8Value()));
359 } 362 }
360 { 363 {
361 v8::Handle<v8::Array> v8StringArray1 = v8::Array::New(m_scope.isolate(), 2); 364 v8::Handle<v8::Array> v8StringArray1 = v8::Array::New(m_scope.isolate(), 2);
362 v8StringArray1->Set(toV8Value(0), toV8Value("foo")); 365 v8StringArray1->Set(toV8Value(0), toV8Value("foo"));
363 v8StringArray1->Set(toV8Value(1), toV8Value("bar")); 366 v8StringArray1->Set(toV8Value(1), toV8Value("bar"));
364 v8::Handle<v8::Array> v8StringArray2 = v8::Array::New(m_scope.isolate(), 3); 367 v8::Handle<v8::Array> v8StringArray2 = v8::Array::New(m_scope.isolate(), 3);
365 v8StringArray2->Set(toV8Value(0), toV8Value("x")); 368 v8StringArray2->Set(toV8Value(0), toV8Value("x"));
366 v8StringArray2->Set(toV8Value(1), toV8Value("y")); 369 v8StringArray2->Set(toV8Value(1), toV8Value("y"));
367 v8StringArray2->Set(toV8Value(2), toV8Value("z")); 370 v8StringArray2->Set(toV8Value(2), toV8Value("z"));
368 v8::Handle<v8::Array> v8StringArrayArray = v8::Array::New(m_scope.isolat e(), 2); 371 v8::Handle<v8::Array> v8StringArrayArray = v8::Array::New(m_scope.isolat e(), 2);
369 v8StringArrayArray->Set(toV8Value(0), v8StringArray1); 372 v8StringArrayArray->Set(toV8Value(0), v8StringArray1);
370 v8StringArrayArray->Set(toV8Value(1), v8StringArray2); 373 v8StringArrayArray->Set(toV8Value(1), v8StringArray2);
371 374
372 Vector<Vector<String> > stringVectorVector = toImplArray<Vector<String> >(v8StringArrayArray, 0, m_scope.isolate()); 375 NonThrowableExceptionState exceptionState;
376 Vector<Vector<String> > stringVectorVector = toImplArray<Vector<String> >(v8StringArrayArray, 0, m_scope.isolate(), exceptionState);
373 EXPECT_EQ(2U, stringVectorVector.size()); 377 EXPECT_EQ(2U, stringVectorVector.size());
374 EXPECT_EQ(2U, stringVectorVector[0].size()); 378 EXPECT_EQ(2U, stringVectorVector[0].size());
375 EXPECT_EQ("foo", stringVectorVector[0][0]); 379 EXPECT_EQ("foo", stringVectorVector[0][0]);
376 EXPECT_EQ("bar", stringVectorVector[0][1]); 380 EXPECT_EQ("bar", stringVectorVector[0][1]);
377 EXPECT_EQ(3U, stringVectorVector[1].size()); 381 EXPECT_EQ(3U, stringVectorVector[1].size());
378 EXPECT_EQ("x", stringVectorVector[1][0]); 382 EXPECT_EQ("x", stringVectorVector[1][0]);
379 EXPECT_EQ("y", stringVectorVector[1][1]); 383 EXPECT_EQ("y", stringVectorVector[1][1]);
380 EXPECT_EQ("z", stringVectorVector[1][2]); 384 EXPECT_EQ("z", stringVectorVector[1][2]);
381 } 385 }
382 } 386 }
383 387
384 } // namespace 388 } // namespace
385 389
386 } // namespace blink 390 } // namespace blink
OLDNEW
« no previous file with comments | « Source/bindings/core/v8/V8Binding.cpp ('k') | Source/bindings/core/v8/V8StringResource.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698