mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
Rename CEF1 files from /trunk to /trunk/cef1 (issue #564).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@570 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
@@ -1,104 +0,0 @@
|
||||
// Copyright (c) 2012 The Chromium Embedded Framework Authors. All rights
|
||||
// reserved. Use of this source code is governed by a BSD-style license that
|
||||
// can be found in the LICENSE file.
|
||||
|
||||
#include "include/cef_runnable.h"
|
||||
#include "include/cef_v8.h"
|
||||
#include "tests/unittests/test_handler.h"
|
||||
#include "testing/gtest/include/gtest/gtest.h"
|
||||
|
||||
namespace {
|
||||
|
||||
// Base class for V8 unit tests.
|
||||
class V8TestHandler : public TestHandler {
|
||||
public:
|
||||
explicit V8TestHandler(const std::string& code) {
|
||||
html_ = "<html><head><script language=\"JavaScript\">" +
|
||||
code +
|
||||
"</script></head><body></body></html>";
|
||||
}
|
||||
|
||||
virtual void RunTest() OVERRIDE {
|
||||
const std::string url = "http://tests/run.html";
|
||||
AddResource(url, html_, "text/html");
|
||||
CreateBrowser(url);
|
||||
}
|
||||
|
||||
virtual void OnLoadEnd(CefRefPtr<CefBrowser> browser,
|
||||
CefRefPtr<CefFrame> frame,
|
||||
int httpStatusCode) OVERRIDE {
|
||||
if (!browser->IsPopup() && frame->IsMain()) {
|
||||
frame->ExecuteJavaScript("gc();", "", 0);
|
||||
DestroyTest();
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
std::string html_;
|
||||
};
|
||||
|
||||
// Base class for V8 unit test handlers.
|
||||
class V8TestV8Handler : public CefV8Handler {
|
||||
IMPLEMENT_REFCOUNTING(V8TestV8Handler);
|
||||
};
|
||||
|
||||
} // namespace
|
||||
|
||||
TEST(V8Test, ExternalMemoryAllocation) {
|
||||
class Test : public V8TestV8Handler {
|
||||
public:
|
||||
static std::string GetExtensionCode() {
|
||||
std::string code =
|
||||
"function createObject() {"
|
||||
" native function createObject();"
|
||||
" return createObject();"
|
||||
"}"
|
||||
"function checkSize(object) {"
|
||||
" native function checkSize();"
|
||||
" return checkSize(object);"
|
||||
"};";
|
||||
return code;
|
||||
}
|
||||
|
||||
static std::string GetTestCode() {
|
||||
return "checkSize(createObject());";
|
||||
}
|
||||
|
||||
Test()
|
||||
: object_created_(false),
|
||||
size_checked_(false) {
|
||||
}
|
||||
|
||||
virtual bool Execute(const CefString& name,
|
||||
CefRefPtr<CefV8Value> object,
|
||||
const CefV8ValueList& arguments,
|
||||
CefRefPtr<CefV8Value>& retval,
|
||||
CefString& exception) {
|
||||
static const int kTestSize = 999999999;
|
||||
if (name == "createObject") {
|
||||
retval = CefV8Value::CreateObject(
|
||||
CefRefPtr<CefBase>(), CefRefPtr<CefV8Accessor>());
|
||||
object_created_ =
|
||||
(retval->AdjustExternallyAllocatedMemory(kTestSize) == kTestSize);
|
||||
return true;
|
||||
} else if (name == "checkSize") {
|
||||
size_checked_ =
|
||||
arguments[0]->GetExternallyAllocatedMemory() == kTestSize;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool object_created_;
|
||||
bool size_checked_;
|
||||
};
|
||||
|
||||
Test* test = new Test();
|
||||
CefRegisterExtension("v8/externalMemory", test->GetExtensionCode(), test);
|
||||
|
||||
V8TestHandler* test_handler = new V8TestHandler(test->GetTestCode());
|
||||
test_handler->ExecuteTest();
|
||||
|
||||
ASSERT_TRUE(test->object_created_);
|
||||
ASSERT_TRUE(test->size_checked_);
|
||||
}
|
Reference in New Issue
Block a user