package net.sf.openrocket.simulation.extension.impl; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import net.sf.openrocket.startup.MockPreferences; import org.junit.Before; import org.junit.Test; public class TestScriptingUtil { private static final String HASH_JavaScript_foobar = "SHA-256:8f06133e0235d239355b5ca8ca0b43dece803c29b2a563222519d982abd3fc43"; private ScriptingUtil util; @Before public void setup() { util = new ScriptingUtil(); util.prefs = new MockPreferences(); } /* * Note: This class assumes that the JRE supports JavaScript scripting. */ @Test public void testGetLanguage() { assertEquals(null, util.getLanguage(null)); assertEquals(null, util.getLanguage("")); assertEquals(null, util.getLanguage("foobar")); assertEquals("JavaScript", util.getLanguage("JavaScript")); assertEquals("JavaScript", util.getLanguage("javascript")); assertEquals("JavaScript", util.getLanguage("ECMAScript")); assertEquals("JavaScript", util.getLanguage("js")); } @Test public void testGetLanguages() { assertTrue(util.getLanguages().size() >= 1); assertTrue(util.getLanguages().contains("JavaScript")); } @Test public void testIsTrustedScript() { util.setTrustedScript("JavaScript", "foobar", true); assertTrue(util.isTrustedScript("JavaScript", "foobar")); assertTrue(util.isTrustedScript("JavaScript", " \n foobar \n\t\r")); assertFalse(util.isTrustedScript("JavaScript", "foo\nbar")); assertFalse(util.isTrustedScript("Javascript", "foobar")); // Empty script is always considered trusted assertFalse(util.isTrustedScript("foo", null)); assertTrue(util.isTrustedScript("foo", "")); assertTrue(util.isTrustedScript("foo", " \n\r\t ")); } @Test public void testSetTrustedScript() { util.setTrustedScript("JavaScript", " \n foobar \n\r ", true); assertTrue(util.prefs.getNode(ScriptingUtil.NODE_ID).getBoolean(HASH_JavaScript_foobar, false)); util.setTrustedScript("JavaScript", " foobar ", false); assertTrue(util.prefs.getNode(ScriptingUtil.NODE_ID).getBoolean(HASH_JavaScript_foobar, true)); assertFalse(util.prefs.getNode(ScriptingUtil.NODE_ID).getBoolean(HASH_JavaScript_foobar, false)); } @Test public void testClearTrustedScripts() { util.setTrustedScript("JavaScript", "foobar", true); assertTrue(util.isTrustedScript("JavaScript", "foobar")); util.clearTrustedScripts(); assertFalse(util.isTrustedScript("JavaScript", "foobar")); } @Test public void testNormalize() { assertEquals("foo", ScriptingUtil.normalize("foo")); assertEquals("foo bar", ScriptingUtil.normalize(" \n\r\t foo \r bar \n\t\r ")); } @Test public void testHash() { assertEquals("SHA-256:12e6a78889b96a16d305b8e4af81119545f89eccba5fb37cc3a1ec2c53eab514", ScriptingUtil.hash("JS", "")); assertEquals("SHA-256:000753e5deb2d8fa80e602ca03bcdb8e12a6b14b2b4a4d0abecdc976ad26e3ef", ScriptingUtil.hash("foo", "1165")); assertEquals(HASH_JavaScript_foobar, ScriptingUtil.hash("JavaScript", "foobar")); } }