rhino1.7.7.testsrc.tests.e4x.Expressions.11.1.4-08.js Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of rhino Show documentation
Show all versions of rhino Show documentation
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.
/* -*- 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{m}>\n;', valid: false});
exprs.push({expr: 'm=o ;\na=\n <{m}>x z{m}>\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