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

rhino1.7.7.testsrc.tests.e4x.Expressions.11.1.4-08.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: java; tab-width:8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */

/* 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/. */

gTestfile = '11.1.4-08.js';

var summary = "11.1.4 - XML Initializer - {} Expressions - 08";

var BUGNUMBER = 325750;
var actual = '';
var expect = '';

printBugNumber(BUGNUMBER);
START(summary);
printStatus('E4X: inconsistencies in the use of {} syntax Part Deux');

// https://bugzilla.mozilla.org/show_bug.cgi?id=318922
// https://bugzilla.mozilla.org/show_bug.cgi?id=321549

var exprs = [];
var iexpr;

exprs.push({expr: 'b=\'\\\'\';\na=\n  x\n;', valid: false});
exprs.push({expr: 'b=\'\\\'\';\na=\n  x\n;', valid: false});
exprs.push({expr: 'b=\'b\';\na=\n  x\n;', valid: true});
exprs.push({expr: 'b=\'b\';\na=\n  x\n;', valid: true});
exprs.push({expr: 'b=\'b\';\na=\n  x\n;', valid: true});
exprs.push({expr: 'b=\'b\';\na=\n  x\n;', valid: true});
exprs.push({expr: 'b=\'b\';\na=\n  <{b}b>x\n;', valid: true});
exprs.push({expr: 'b=\'b\';\na=\n  x\n;', valid: true});
exprs.push({expr: 'b=\'b\';\na=\n  <{b+\'b\'}>x\n;', valid: true});
exprs.push({expr: 'b=\'b\';\na=\n  <{b}b>x\n;', valid: true});
exprs.push({expr: 'b=\'c\';\na=\n  x\n;', valid: false});
exprs.push({expr: 'b=\'c\';\na=\n  x\n;', valid: true});
exprs.push({expr: 'b=\'c\';\na=\n  x\n;', valid: false});
exprs.push({expr: 'b=\'c\';\na=\n  x\n;', valid: true});
exprs.push({expr: 'b=\'c\';\na=\n  x\n;', valid: true});
exprs.push({expr: 'b=\'c\';\na=\n  x\n;', valid: true});
exprs.push({expr: 'b=\'c\';\na=\n  x\n;', valid: true});
exprs.push({expr: 'm=1;\na=\n  x {m} z\n;', valid: true});
exprs.push({expr: 'm=1;\na=new XML(m);', valid: true});
exprs.push({expr: 'm=o;\na=\n  x {m} z\n;', valid: true});
exprs.push({expr: 'm=o;\na=\n  <{m}>x  z\n;', valid: false});
exprs.push({expr: 'm=o;\na=\n  <{m}>x  z\n;', valid: true});
exprs.push({expr: 'm=[1,\'x\'];\na=\n  x {m} z\n;', valid: true});
exprs.push({expr: 'm=[1,\'x\'];\na=new XML(m);', valid: false});
exprs.push({expr: 'm=[1];\na=new XML(m);', valid: false});
exprs.push({expr: 'm=\'o\';\na=\n  x {m} z\n;', valid: true});
exprs.push({expr: 'm=\'o\';\na=\n  x {m} z\n;', valid: true});
exprs.push({expr: 'm=\'x\';\na=new XML(m);', valid: true});
exprs.push({expr: 'm=new Date();\na=new XML(m);', valid: false});
exprs.push({expr: 'm=new Number(\'1\');\na=new XML(m);', valid: true});
exprs.push({expr: 'm=new String(\'x\');\na=new XML(\'\\n  {m}\\n\');', valid: true});
exprs.push({expr: 'm=new String(\'x\');\na=new XML(m);', valid: true});
exprs.push({expr: 'm={a:1,b:\'x\'};\na=\n  x {m} z\n;', valid: true});
exprs.push({expr: 'm={a:1,b:\'x\'};\na=new XML(m);', valid: false});
exprs.push({expr: 'p="p";\nu=\'http://a.uri/\';\na=\n  x\n;', valid: true});
exprs.push({expr: 'p="p";\nu=\'http://a.uri/\';\na=\n  x\n;', valid: true});
exprs.push({expr: 'p="pp";\nu=\'http://a.uri/\';\na=\n  x\n;', valid: true});
exprs.push({expr: 'u=\'http://a.uri/\';\na=\n  x\n;', valid: true});
exprs.push({expr: 'u=\'http://a.uri/\';\na=\n  x\n;', valid: true});
exprs.push({expr: 'u=\'http://a.uri/\';\na=\n  <{u}:b>x\n;', valid: false});
exprs.push({expr: 'u=\'http://a.uri/\';\na=\n  x\n;', valid: false});
exprs.push({expr: 'u=\'http://a.uri/\';\nn=new Namespace("p",u);\na=\n  <{u}:b>x\n;', valid: false});
exprs.push({expr: 'u=\'http://a.uri/\';\nn=new Namespace("p",u);\na=\n  <{u}:b>x\n;', valid: false});
exprs.push({expr: 'u=\'http://a.uri/\';\nn=new Namespace("p",u);\na=\n  x\n;', valid: false});
exprs.push({expr: 'u=\'http://a.uri/\';\nn=new Namespace("p",u);\na=\n  <{n}:b>x\n;', valid: false});
exprs.push({expr: 'u=\'http://a.uri/\';\nn=new Namespace(u);\na=\n  x\n;', valid: true});
exprs.push({expr: 'u=\'http://a.uri/\';\nn=new Namespace(u);\na=\n  <{n}:b>x\n;', valid: false});
exprs.push({expr: 'u=\'http://a.uri/\';\nn=new Namespace(u);\na=\n  x\n;', valid: true});
exprs.push({expr: 'u=\'http://a.uri/\';\nn=new Namespace(u);\na=\n  <{n}:b>x\n;', valid: false});
exprs.push({expr: 'u=\'http://a.uri/\';\nn=new Namespace(u);\na=\n  <{n}:b>x\n;', valid: false});
exprs.push({expr: 'u=\'http://a.uri/\';\np=\'p\';\na=\n  <{p}:b>x\n;', valid: true});
exprs.push({expr: 'u=\'http://a.uri/\';\np=\'p\';\na=\n  x\n;', valid: true});
exprs.push({expr: 'u=\'http://a.uri/\';\np=\'p\';\na=\n  <{p}p:b>x\n;', valid: true});
exprs.push({expr: 'u=\'http://a.uri/\';\np=\'p\';\nns="ns";\na=\n  <{p}p:b>x\n;', valid: true});
exprs.push({expr: 'u=\'http://a.uri/\';\np=\'p\';\nns="xmlns";\na=\n  <{p}p:b>x\n;', valid: true});
exprs.push({expr: 'u=\'http://a.uri/\';\np=\'p\';\nxml="xml";\na=\n  <{p}p:b>x\n;', valid: true});
exprs.push({expr: 'u=\'http://a.uri/\';\np=\'pp\';\na=\n  <{p}:b>x\n;', valid: true});
exprs.push({expr: 'u=\'http://a.uri/\';\nu2=\'http://uri2.sameprefix/\';\nn=new Namespace(\'p\',u2);\na=\n  <{n}:b>x\n;', valid: false}); // This should always fail

for (iexpr = 0; iexpr < exprs.length; ++iexpr)
{
  evalStr(exprs, iexpr);
}

END();

function evalStr(exprs, iexpr)
{
  var value;
  var valid;
  var passfail;
  var obj = exprs[iexpr];

  try
  {
    value = eval(obj.expr).toXMLString();
    valid = true;
  }
  catch(ex)
  {
    value = ex + '';
    valid = false;
  }

  passfail = (valid === obj.valid);

  msg = iexpr + ': ' + (passfail ? 'PASS':'FAIL') +
        ' expected: ' + (obj.valid ? 'valid':'invalid') +
        ', actual: ' + (valid ? 'valid':'invalid') + '\n' +
        'input: ' + '\n' +
        obj.expr + '\n' +
        'output: ' + '\n' +
        value + '\n\n';
 
  printStatus(msg);

  TEST(iexpr, obj.valid, valid);

  return passfail;
}






© 2015 - 2024 Weber Informatics LLC | Privacy Policy