All Downloads are FREE. Search and download functionalities are using the official Maven repository.

rhino1.7.7.testsrc.tests.ecma_3.RegExp.regress-209067.js Maven / Gradle / Ivy

Go to download

Rhino is an open-source implementation of JavaScript written entirely in Java. It is typically embedded into Java applications to provide scripting to end users.

There is a newer version: 1.7.15
Show newest version
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

/*
 *
 * Date:    12 June 2003
 * SUMMARY: Testing complicated str.replace()
 *
 * See http://bugzilla.mozilla.org/show_bug.cgi?id=209067
 *
 */
//-----------------------------------------------------------------------------
var gTestfile = 'regress-209067.js';
var UBound = 0;
var BUGNUMBER = 209067;
var summary = 'Testing complicated str.replace()';
var status = '';
var statusitems = [];
var actual = '';
var actualvalues = [];
var expect= '';
var expectedvalues = [];


function formatHTML(h)
{
  // a replace function used in the succeeding lines -
  function S(s)
  {
    return s.replace(//g,'>');
  }

  h+='\n';
  h=h.replace(/&([^\s]+;)/g,'<&$1>');
  h=h.replace(new RegExp('','g'), S);
  h=h.replace(/"[^"]*"/g,S);
  h=h.replace(/'[^']*'/g,S);


  h=h.replace(/<([^>]*)>/g,
              function(s,p)
              {
                if(s.match(/!doctype/i))
                  return'<' + p + '>';

                p=p.replace(/\\'/g,'\\'').replace(/\\"/g,'\\"').replace(/^\s/,'');
p=p.replace(/(\s)([^<]+)$/g,
	    function(s,p1,p2)
	    {
	      p2=p2.replace(/(=)(\s*[^"'][^\s]*)(\s|$)/g,'$1$2$3');
                              p2=p2.replace(/("[^"]*")/g,'$1');
				 p2=p2.replace(/('[^']*')/g,'$1');
                              return p1 + ''+p2+'';
                            }
                           )

                return'<' + p + '>';
              }
             )


  h=h.replace(/<(&[^\s]+;)>/g,'$1');
  h=h.replace(/(<!--[\s\S]*-->)/g,'$1');


  numer=1;
  h=h.replace(/(.*\n)/g,
              function(s,p)
              {
                return (numer++) +'. ' + p;
              }
             )


  return'' + h + '';
}



/*
 * sanity check
 */
status = inSection(1);
actual = formatHTML('abc');
expect = '1. abc\n';
addThis();


/*
 * The real test: can we run this without crashing?
 * We are not validating the result, just running it.
 */
status = inSection(2);
var HUGE_TEST_STRING = hugeString();
formatHTML(HUGE_TEST_STRING);




//-----------------------------------------------------------------------------
test();
//-----------------------------------------------------------------------------



function addThis()
{
  statusitems[UBound] = status;
  actualvalues[UBound] = actual;
  expectedvalues[UBound] = expect;
  UBound++;
}


function test()
{
  enterFunc('test');
  printBugNumber(BUGNUMBER);
  printStatus(summary);

  for (var i=0; i




© 2015 - 2024 Weber Informatics LLC | Privacy Policy