private Object getDefaultValue(final Class<?> type) { if (type.equals(V8Object.class)) { return new V8Object.Undefined(); } else if (type.equals(V8Array.class)) { return new V8Array.Undefined(); } return invalid; }
private Object getDefaultValue(final Class<?> type) { if (type.equals(V8Object.class)) { return new V8Object.Undefined(); } else if (type.equals(V8Array.class)) { return new V8Array.Undefined(); } return invalid; }
private Object getDefaultValue(final Class<?> type) { if (type.equals(V8Object.class)) { return new V8Object.Undefined(); } else if (type.equals(V8Array.class)) { return new V8Array.Undefined(); } return invalid; }
@Test(expected = UnsupportedOperationException.class) public void testExecuteJSFunction_UndefinedReceiver() { v8.executeVoidScript("function test() { }"); V8Object undefined = new V8Object.Undefined(); undefined.executeJSFunction("test", (Object[]) null); undefined.close(); }
@Test public void testCallFunctionOnUndefined() { v8.executeVoidScript("function add(x, y) {return x+y;}"); V8Function function = (V8Function) v8.getObject("add"); V8Array parameters = new V8Array(v8); parameters.push(7).push(8); Object result = function.call(new V8Object.Undefined(), parameters); assertEquals(15, result); function.close(); parameters.close(); }
@Test public void testCallbackWithUndefinedInParameterList() { ICallback callback = mock(ICallback.class); v8.registerJavaMethod(callback, "voidMethodWithObjectParameter", "foo", new Class<?>[] { V8Object.class }); v8.executeVoidScript("foo(undefined);"); verify(callback).voidMethodWithObjectParameter(new V8Object.Undefined()); }
@Test public void testVarArgsNoReciver() { ICallback callback = mock(ICallback.class); v8.registerJavaMethod(callback, "voidMethodVarArgsReceiverAndOthers", "foo", new Class<?>[] { V8Object.class, Integer.TYPE, Integer.TYPE, Object[].class }, false); v8.executeVoidScript("foo(undefined, 1, 2);"); verify(callback).voidMethodVarArgsReceiverAndOthers(new V8Object.Undefined(), 1, 2); }
@Test public void testCallbackVarArgsWithUndefined() { ICallback callback = mock(ICallback.class); v8.registerJavaMethod(callback, "voidMethodVarArgs", "foo", new Class<?>[] { Object[].class }); v8.executeVoidScript("foo(undefined);"); verify(callback).voidMethodVarArgs(new V8Object.Undefined()); }
@Test public void testUndefinedNotReleased() { Undefined undefined = new V8Object.Undefined(); undefined.close(); assertFalse(undefined.isReleased()); }
@Test(expected = UnsupportedOperationException.class) public void testExecuteFunction_UndefinedReceiver() { v8.executeVoidScript("function test() { }"); V8Object undefined = new V8Object.Undefined(); undefined.executeFunction("test", null); undefined.close(); }
@Test public void testCallbackWithEmptyParameterList() { ICallback callback = mock(ICallback.class); v8.registerJavaMethod(callback, "voidMethodWithObjectParameter", "foo", new Class<?>[] { V8Object.class }); v8.executeVoidScript("foo();"); verify(callback).voidMethodWithObjectParameter(new V8Object.Undefined()); }
@SuppressWarnings("resource") @Test public void testObjectUndefinedHashCodeEqualsArrayUndefinedHashCode() { assertEquals(new V8Object.Undefined().hashCode(), new V8Array.Undefined().hashCode()); }
@Test public void testVoidMethodCalledWithParameters() { ICallback callback = mock(ICallback.class); v8.registerJavaMethod(callback, "voidMethodWithParameters", "foo", new Class<?>[] { Integer.TYPE, Double.TYPE, Boolean.TYPE, String.class, V8Object.class }); v8.executeVoidScript("foo(1,1.1, false, 'string', undefined);"); verify(callback).voidMethodWithParameters(1, 1.1, false, "string", new V8Object.Undefined()); }
@SuppressWarnings("resource") @Test public void testObjectUndefinedEqualsArrayUndefined() { assertEquals(new V8Object.Undefined(), new V8Array.Undefined()); }
private Object getDefaultValue(final Class<?> type) { if (type.equals(V8Object.class)) { return new V8Object.Undefined(); } else if (type.equals(V8Array.class)) { return new V8Array.Undefined(); } return invalid; }