Changeset View
Changeset View
Standalone View
Standalone View
source/scriptinterface/tests/test_ScriptConversions.h
Show All 37 Lines | void convert_to(const T& value, const std::string& expected) | ||||
ScriptInterface::Request rq(script); | ScriptInterface::Request rq(script); | ||||
JS::RootedValue v1(rq.cx); | JS::RootedValue v1(rq.cx); | ||||
ScriptInterface::ToJSVal(rq.cx, &v1, value); | ScriptInterface::ToJSVal(rq.cx, &v1, value); | ||||
// We want to convert values to strings, but can't just call toSource() on them | // We want to convert values to strings, but can't just call toSource() on them | ||||
// since they might not be objects. So just use uneval. | // since they might not be objects. So just use uneval. | ||||
std::string source; | std::string source; | ||||
JS::RootedValue global(rq.cx, script.GetGlobalObject()); | JS::RootedValue global(rq.cx, rq.globalValue()); | ||||
TS_ASSERT(script.CallFunction(global, "uneval", source, v1)); | TS_ASSERT(script.CallFunction(global, "uneval", source, v1)); | ||||
TS_ASSERT_STR_EQUALS(source, expected); | TS_ASSERT_STR_EQUALS(source, expected); | ||||
} | } | ||||
template <typename T> | template <typename T> | ||||
void roundtrip(const T& value, const char* expected) | void roundtrip(const T& value, const char* expected) | ||||
{ | { | ||||
ScriptInterface script("Test", "Test", g_ScriptRuntime); | ScriptInterface script("Test", "Test", g_ScriptRuntime); | ||||
TS_ASSERT(script.LoadGlobalScripts()); | TS_ASSERT(script.LoadGlobalScripts()); | ||||
ScriptInterface::Request rq(script); | ScriptInterface::Request rq(script); | ||||
JS::RootedValue v1(rq.cx); | JS::RootedValue v1(rq.cx); | ||||
ScriptInterface::ToJSVal(rq.cx, &v1, value); | ScriptInterface::ToJSVal(rq.cx, &v1, value); | ||||
std::string source; | std::string source; | ||||
JS::RootedValue global(rq.cx, script.GetGlobalObject()); | JS::RootedValue global(rq.cx, rq.globalValue()); | ||||
TS_ASSERT(script.CallFunction(global, "uneval", source, v1)); | TS_ASSERT(script.CallFunction(global, "uneval", source, v1)); | ||||
if (expected) | if (expected) | ||||
TS_ASSERT_STR_EQUALS(source, expected); | TS_ASSERT_STR_EQUALS(source, expected); | ||||
T v2 = T(); | T v2 = T(); | ||||
TS_ASSERT(ScriptInterface::FromJSVal(rq.cx, v1, v2)); | TS_ASSERT(ScriptInterface::FromJSVal(rq.cx, v1, v2)); | ||||
TS_ASSERT_EQUALS(value, v2); | TS_ASSERT_EQUALS(value, v2); | ||||
Show All 13 Lines | void call_prototype_function(const T& u, const T& v, const std::string& func, const std::string& expected) | ||||
T r; | T r; | ||||
JS::RootedValue r1(rq.cx); | JS::RootedValue r1(rq.cx); | ||||
TS_ASSERT(script.CallFunction(u1, func.c_str(), r, v1)); | TS_ASSERT(script.CallFunction(u1, func.c_str(), r, v1)); | ||||
ScriptInterface::ToJSVal(rq.cx, &r1, r); | ScriptInterface::ToJSVal(rq.cx, &r1, r); | ||||
std::string source; | std::string source; | ||||
JS::RootedValue global(rq.cx, script.GetGlobalObject()); | JS::RootedValue global(rq.cx, rq.globalValue()); | ||||
TS_ASSERT(script.CallFunction(global, "uneval", source, r1)); | TS_ASSERT(script.CallFunction(global, "uneval", source, r1)); | ||||
TS_ASSERT_STR_EQUALS(source, expected); | TS_ASSERT_STR_EQUALS(source, expected); | ||||
} | } | ||||
public: | public: | ||||
void setUp() | void setUp() | ||||
{ | { | ||||
▲ Show 20 Lines • Show All 171 Lines • Show Last 20 Lines |
Wildfire Games · Phabricator