/** * Returns the String value associated with this key. If the value * associated with this key does not exist, or if it's not a String, then * V8ResultUndefined exception is thrown. * * @param key The key whose value to return. * * @return The String value associated with this key, or V8ResultUndefined * if the key does not exist or the value is not a String. */ public String getString(final String key) { v8.checkThread(); checkReleased(); checkKey(key); return v8.getString(v8.getV8RuntimePtr(), objectHandle, key); }
/** * Returns the String value associated with this key. If the value * associated with this key does not exist, or if it's not a String, then * V8ResultUndefined exception is thrown. * * @param key The key whose value to return. * * @return The String value associated with this key, or V8ResultUndefined * if the key does not exist or the value is not a String. */ public String getString(final String key) { v8.checkThread(); checkReleased(); checkKey(key); return v8.getString(v8.getV8RuntimePtr(), objectHandle, key); }
@Test(expected = V8ResultUndefined.class) public void testGetStringDoesNotExist() { v8.executeVoidScript(""); v8.getString("x"); }
@Test(expected = V8ResultUndefined.class) public void testGetStringeWrongType() { v8.executeVoidScript("x = 42"); v8.getString("x"); }
/*** Null ***/ @Test public void testStringIsNull() { v8.add("nullString", (V8Object) null); assertNull(v8.getString("nullString")); }
/*** Get String ***/ @Test public void testGetString() { v8.executeVoidScript("x = 'hello'"); String result = v8.getString("x"); assertEquals("hello", result); }
@Test public void testGetStringReplaceValue() { v8.executeVoidScript("x = 'hello'; x = 'world'"); String result = v8.getString("x"); assertEquals("world", result); }
@Test public void testMultiThreadAccess() throws InterruptedException { v8.add("foo", "bar"); v8.getLocker().release(); Thread t = new Thread(new Runnable() { @Override public void run() { v8.getLocker().acquire(); v8.add("foo", "baz"); v8.getLocker().release(); } }); t.start(); t.join(); v8.getLocker().acquire(); assertEquals("baz", v8.getString("foo")); }
@Test public void testChangeToWindowPrototypeAppearsInGlobalScope() { setupWindowAlias(); V8Object prototype = v8.executeObjectScript("Window.prototype"); prototype.add("foo", "bar"); v8.executeVoidScript("delete window.foo"); assertEquals("bar", v8.getString("foo")); assertEquals("bar", v8.executeStringScript("window.foo;")); prototype.close(); }
@Test public void testAddGet() { v8.add("string", "string"); v8.add("int", 7); v8.add("double", 3.1); v8.add("boolean", true); assertEquals("string", v8.getString("string")); assertEquals(7, v8.getInteger("int")); assertEquals(3.1, v8.getDouble("double"), 0.00001); assertTrue(v8.getBoolean("boolean")); }
/** * Returns the String value associated with this key. If the value * associated with this key does not exist, or if it's not a String, then * V8ResultUndefined exception is thrown. * * @param key The key whose value to return. * * @return The String value associated with this key, or V8ResultUndefined * if the key does not exist or the value is not a String. */ public String getString(final String key) { v8.checkThread(); checkReleased(); return v8.getString(v8.getV8RuntimePtr(), objectHandle, key); }
/** * Returns the String value associated with this key. If the value * associated with this key does not exist, or if it's not a String, then * V8ResultUndefined exception is thrown. * * @param key The key whose value to return. * * @return The String value associated with this key, or V8ResultUndefined * if the key does not exist or the value is not a String. */ public String getString(final String key) { v8.checkThread(); checkReleased(); return v8.getString(v8.getV8RuntimePtr(), objectHandle, key); }