diff options
author | Alexander Sulfrian <alexander@sulfrian.net> | 2010-06-08 09:01:43 +0200 |
---|---|---|
committer | Alexander Sulfrian <alexander@sulfrian.net> | 2010-06-08 09:01:43 +0200 |
commit | d1fa08fdc9cb11dccee76d668ff85df30458c295 (patch) | |
tree | 1d19df6405103577d872902486792e8c23bce711 /infrastructure/rhino1_7R1/testsrc/org/mozilla/javascript/drivers/StandardTests.java | |
parent | d7c5ad7d6263fd1baf9bfdbaa4c50b70ef2fbdb2 (diff) | |
parent | 70d1f9d6fcaefe611e778b8dbf3bafea8934aa08 (diff) | |
download | etherpad-d1fa08fdc9cb11dccee76d668ff85df30458c295.tar.gz etherpad-d1fa08fdc9cb11dccee76d668ff85df30458c295.tar.xz etherpad-d1fa08fdc9cb11dccee76d668ff85df30458c295.zip |
Merge remote branch 'upstream/master'
Conflicts:
etherpad/src/etherpad/control/pro/admin/pro_admin_control.js
etherpad/src/etherpad/control/pro/pro_main_control.js
etherpad/src/etherpad/control/pro_help_control.js
etherpad/src/etherpad/globals.js
etherpad/src/etherpad/legacy_urls.js
etherpad/src/etherpad/pne/pne_utils.js
etherpad/src/etherpad/pro/pro_utils.js
etherpad/src/main.js
etherpad/src/plugins/fileUpload/templates/fileUpload.ejs
etherpad/src/plugins/testplugin/templates/page.ejs
etherpad/src/static/css/pad2_ejs.css
etherpad/src/static/css/pro-help.css
etherpad/src/static/img/jun09/pad/protop.gif
etherpad/src/static/js/store.js
etherpad/src/themes/default/templates/framed/framedheader-pro.ejs
etherpad/src/themes/default/templates/main/home.ejs
etherpad/src/themes/default/templates/pro-help/main.ejs
etherpad/src/themes/default/templates/pro-help/pro-help-template.ejs
infrastructure/com.etherpad/licensing.scala
trunk/etherpad/src/etherpad/collab/ace/contentcollector.js
trunk/etherpad/src/etherpad/collab/ace/linestylefilter.js
trunk/etherpad/src/static/css/home-opensource.css
trunk/etherpad/src/static/js/ace.js
trunk/etherpad/src/static/js/linestylefilter_client.js
trunk/etherpad/src/templates/email/eepnet_license_info.ejs
trunk/etherpad/src/templates/pad/pad_body2.ejs
trunk/etherpad/src/templates/pad/pad_content.ejs
trunk/etherpad/src/templates/pad/padfull_body.ejs
trunk/etherpad/src/templates/pro/admin/pne-license-manager.ejs
Diffstat (limited to 'infrastructure/rhino1_7R1/testsrc/org/mozilla/javascript/drivers/StandardTests.java')
-rw-r--r-- | infrastructure/rhino1_7R1/testsrc/org/mozilla/javascript/drivers/StandardTests.java | 212 |
1 files changed, 212 insertions, 0 deletions
diff --git a/infrastructure/rhino1_7R1/testsrc/org/mozilla/javascript/drivers/StandardTests.java b/infrastructure/rhino1_7R1/testsrc/org/mozilla/javascript/drivers/StandardTests.java new file mode 100644 index 0000000..9c05df6 --- /dev/null +++ b/infrastructure/rhino1_7R1/testsrc/org/mozilla/javascript/drivers/StandardTests.java @@ -0,0 +1,212 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Rhino code, released May 6, 1999. + * + * The Initial Developer of the Original Code is + * Netscape Communications Corporation. + * Portions created by the Initial Developer are Copyright (C) 1997-1999 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Attila Szegedi + * David P. Caldwell <inonit@inonit.com> + * + * Alternatively, the contents of this file may be used under the terms of + * the GNU General Public License Version 2 or later (the "GPL"), in which + * case the provisions of the GPL are applicable instead of those above. If + * you wish to allow use of your version of this file only under the terms of + * the GPL and not to allow others to use your version of this file under the + * MPL, indicate your decision by deleting the provisions above and replacing + * them with the notice and other provisions required by the GPL. If you do + * not delete the provisions above, a recipient may use your version of this + * file under either the MPL or the GPL. + * + * ***** END LICENSE BLOCK ***** */ + +package org.mozilla.javascript.drivers; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.net.URL; +import java.util.Arrays; +import java.util.Properties; + +import junit.framework.Assert; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +import org.mozilla.javascript.tools.shell.ShellContextFactory; + +/** + * Executes the tests in the js/tests directory, much like jsDriver.pl does. + * Excludes tests found in the js/tests/rhino-n.tests file. + * @author Attila Szegedi + * @version $Id: StandardTests.java,v 1.6.2.2 2008/02/11 16:57:16 nboyd%atg.com Exp $ + */ +public class StandardTests extends TestSuite +{ + public static TestSuite suite() throws Exception + { + TestSuite suite = new TestSuite("Standard JavaScript tests"); + + File testDir = null; + if (System.getProperty("mozilla.js.tests") != null) { + testDir = new File(System.getProperty("mozilla.js.tests")); + } else { + URL url = StandardTests.class.getResource("."); + String path = url.getFile(); + int jsIndex = path.lastIndexOf("/js"); + if(jsIndex == -1) + { + throw new IllegalStateException("You aren't running the tests from within the standard mozilla/js directory structure"); + } + path = path.substring(0, jsIndex + 3).replace('/', File.separatorChar); + testDir = new File(path, "tests"); + } + if(!testDir.isDirectory()) + { + throw new FileNotFoundException(testDir + " is not a directory"); + } + Properties excludes = new Properties(); + loadExcludes(excludes, "/base.skip"); + Properties opt1Excludes = new Properties(); + loadExcludes(opt1Excludes, "/opt1.skip"); + opt1Excludes.putAll(excludes); + for(int i = -1; i < 2; ++i) + { + TestSuite optimizationLevelSuite = new TestSuite("Optimization level " + i); + addSuites(optimizationLevelSuite, testDir, i == -1 ? excludes : opt1Excludes, i); + suite.addTest(optimizationLevelSuite); + } + return suite; + } + + private static void loadExcludes(Properties excludes, String excludeFileName) throws IOException + { + InputStream in = StandardTests.class.getResourceAsStream(excludeFileName); + try + { + excludes.load(in); + } + finally + { + in.close(); + } + } + + private static void addSuites(TestSuite topLevel, File testDir, Properties excludes, int optimizationLevel) + { + File[] subdirs = testDir.listFiles(ShellTest.DIRECTORY_FILTER); + Arrays.sort(subdirs); + for (int i = 0; i < subdirs.length; i++) + { + File subdir = subdirs[i]; + String name = subdir.getName(); + TestSuite testSuite = new TestSuite(name); + addCategories(testSuite, subdir, name + "/", excludes, optimizationLevel); + topLevel.addTest(testSuite); + } + } + + private static void addCategories(TestSuite suite, File suiteDir, String prefix, Properties excludes, int optimizationLevel) + { + File[] subdirs = suiteDir.listFiles(ShellTest.DIRECTORY_FILTER); + Arrays.sort(subdirs); + for (int i = 0; i < subdirs.length; i++) + { + File subdir = subdirs[i]; + String name = subdir.getName(); + TestSuite testCategory = new TestSuite(name); + addTests(testCategory, subdir, prefix + name + "/", excludes, optimizationLevel); + suite.addTest(testCategory); + } + } + + private static void addTests(TestSuite suite, File suiteDir, String prefix, Properties excludes, int optimizationLevel) + { + File[] jsFiles = suiteDir.listFiles(ShellTest.TEST_FILTER); + Arrays.sort(jsFiles); + for (int i = 0; i < jsFiles.length; i++) + { + File jsFile = jsFiles[i]; + String name = jsFile.getName(); + if(!excludes.containsKey(prefix + name)) + { + suite.addTest(new JsTestCase(jsFile, optimizationLevel)); + } + } + } + + private static class JunitStatus extends ShellTest.Status { + final void running(File jsFile) { + // do nothing + } + + final void failed(String s) { + Assert.fail(s); + } + + final void exitCodesWere(int expected, int actual) { + Assert.assertEquals("Unexpected exit code", expected, actual); + } + + final void outputWas(String s) { + System.out.print(s); + } + + final void threw(Throwable t) { + Assert.fail(ShellTest.getStackTrace(t)); + } + + final void timedOut() { + failed("Timed out."); + } + } + + private static final class JsTestCase extends TestCase + { + private final File jsFile; + private final int optimizationLevel; + + JsTestCase(File jsFile, int optimizationLevel) + { + super(jsFile.getName() + (optimizationLevel == 1 ? "-compiled" : "-interpreted")); + this.jsFile = jsFile; + this.optimizationLevel = optimizationLevel; + } + + public int countTestCases() + { + return 1; + } + + private static class ShellTestParameters extends ShellTest.Parameters { + int getTimeoutMilliseconds() { + if (System.getProperty("mozilla.js.tests.timeout") != null) { + return Integer.parseInt(System.getProperty("mozilla.js.tests.timeout")); + } + return 60000; + } + } + + public void runBare() throws Exception + { + final ShellContextFactory shellContextFactory = new ShellContextFactory(); + shellContextFactory.setOptimizationLevel(optimizationLevel); + ShellTest.run(shellContextFactory, jsFile, new ShellTestParameters(), new JunitStatus()); + } + } +} |