Package org.mozilla.javascript.tests

Source Code of org.mozilla.javascript.tests.GlobalParseXTest

/**
*
*/
package org.mozilla.javascript.tests;

import junit.framework.TestCase;

import org.mozilla.javascript.Context;
import org.mozilla.javascript.ContextAction;
import org.mozilla.javascript.Scriptable;

/**
* Tests for global functions parseFloat and parseInt.
*/
public class GlobalParseXTest extends TestCase {

  /**
   * Test for bug #501972
   * https://bugzilla.mozilla.org/show_bug.cgi?id=501972
   * Leading whitespaces should be ignored with following white space chars
   * (see ECMA spec 15.1.2.3)
   * <TAB>, <SP>, <NBSP>, <FF>, <VT>, <CR>, <LF>, <LS>, <PS>, <USP>
   */
    public void testParseFloatAndIntWhiteSpaces() {
      testParseFloatWhiteSpaces("\\u00A0 "); // <NBSP>

      testParseFloatWhiteSpaces("\\t ");
      testParseFloatWhiteSpaces("\\u00A0 "); // <NBSP>
      testParseFloatWhiteSpaces("\\u000C "); // <FF>
      testParseFloatWhiteSpaces("\\u000B "); // <VT>
      testParseFloatWhiteSpaces("\\u000D "); // <CR>
      testParseFloatWhiteSpaces("\\u000A "); // <LF>
      testParseFloatWhiteSpaces("\\u2028 "); // <LS>
      testParseFloatWhiteSpaces("\\u2029 "); // <PS>
    }

    private void testParseFloatWhiteSpaces(final String prefix) {
        assertEvaluates("789", "String(parseInt('" + prefix + "789 '))");
        assertEvaluates("7.89", "String(parseFloat('" + prefix + "7.89 '))");
    }

    private void assertEvaluates(final Object expected, final String source) {
        final ContextAction action = new ContextAction() {
            public Object run(Context cx) {
                final Scriptable scope = cx.initStandardObjects();
                final Object rep = cx.evaluateString(scope, source, "test.js",
                        0, null);
                assertEquals(expected, rep);
                return null;
            }
        };
        Utils.runWithAllOptimizationLevels(action);
    }
}
TOP

Related Classes of org.mozilla.javascript.tests.GlobalParseXTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.