Chromium Code Reviews| Index: test/cctest/test-api.cc |
| diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc |
| index 475cdf8b0db35e1cbf3e1284835908286bc370a6..4d8b3683d5a22adb10dc414cba6706866c664bb1 100644 |
| --- a/test/cctest/test-api.cc |
| +++ b/test/cctest/test-api.cc |
| @@ -1404,6 +1404,39 @@ THREADED_TEST(External) { |
| } |
| +THREADED_TEST(Blob) { |
| + v8::HandleScope scope; |
| + Local<v8::Blob> blob = v8::Blob::New(3); |
| + blob->SetByte(0, 10); |
| + blob->SetByte(1, 11); |
| + blob->SetByte(2, 12); |
| + LocalContext env; |
| + env->Global()->Set(v8_str("blob"), blob); |
|
Christian Plesner Hansen
2009/11/16 12:12:22
Like externals it is not safe to expose blobs dire
|
| + Local<Value> reblob_obj = Script::Compile(v8_str("this.blob"))->Run(); |
| + v8::Handle<v8::Blob> reblob = v8::Handle<v8::Blob>::Cast(reblob_obj); |
| + int count = reblob->ByteCount(); |
| + CHECK_EQ(3, count); |
| + |
| + uint8_t b = reblob->GetByte(0); |
| + CHECK_EQ(10, b); |
| + |
| + b = reblob->GetByte(1); |
| + CHECK_EQ(11, b); |
| + |
| + b = reblob->GetByte(2); |
| + CHECK_EQ(12, b); |
| + |
| + uint8_t *p = reblob->GetAddress(); |
| + CHECK_EQ(10, p[0]); |
| + CHECK_EQ(11, p[1]); |
| + CHECK_EQ(12, p[2]); |
| + |
| + p[2] = 52; |
| + b = reblob->GetByte(2); |
| + CHECK_EQ(52, b); |
| +} |
| + |
| + |
| THREADED_TEST(GlobalHandle) { |
| v8::Persistent<String> global; |
| { |