index.html revision 23606b66e7ff203eaa791382c3aebb31f4e87bc1
83f8c56f43852bf9a9c6964eae285284b23f9d8dMichael Graff<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
ddad35552931651426ad70912d29d9ab7d2a8d80Automatic Updater<html>
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews<head>
40f53fa8d9c6a4fc38c0014495e7a42b08f52481David Lawrence<title>DataSchema Tests</title>
ec5347e2c775f027573ce5648b910361aa926c01Automatic Updater</head>
83f8c56f43852bf9a9c6964eae285284b23f9d8dMichael Graff
83f8c56f43852bf9a9c6964eae285284b23f9d8dMichael Graff<body class="yui-skin-sam">
40f53fa8d9c6a4fc38c0014495e7a42b08f52481David Lawrence<h1>DataSchema Tests</h1>
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews<p><input type="button" value="Run Tests" id="btnRun" disabled=true></p>
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews<script type="text/javascript" src="/build/yui/yui.js"></script>
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews<script type="text/javascript" src="/build/dataschema/dataschema-debug.js" id="buildsrc"></script>
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews<script type="text/javascript" src="/build/datatype/datatype-debug.js" id="buildsrc"></script>
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews<script type="text/javascript">
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews
83f8c56f43852bf9a9c6964eae285284b23f9d8dMichael Graff(function() {
83f8c56f43852bf9a9c6964eae285284b23f9d8dMichael Graff YUI({
e2fe1fda755f24f593406dc26fed87e8ea1bb502Tatuya JINMEI 神明達哉 base: "/build/",
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein //filter: "debug",
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein useConsole: true,
9c3531d72aeaad6c5f01efe6a1c82023e1379e4dDavid Lawrence insertBefore: "buildsrc"
83f8c56f43852bf9a9c6964eae285284b23f9d8dMichael Graff }).use("console", "test", "dump", "dataschema", "datatype", function(Y) {
83f8c56f43852bf9a9c6964eae285284b23f9d8dMichael Graff
83f8c56f43852bf9a9c6964eae285284b23f9d8dMichael Graff // Set up the page
07072c9456f1112705db701bb35f12dbdcb217b0Mark Andrews var ASSERT = Y.Assert,
07072c9456f1112705db701bb35f12dbdcb217b0Mark Andrews ARRAYASSERT = Y.ArrayAssert,
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 btnRun = Y.get("#btnRun"),
83f8c56f43852bf9a9c6964eae285284b23f9d8dMichael Graff myConsole = new Y.Console().render();
80617c8faa03b2c425e320597eb768073fd0b987Michael Graff
a8dcebd0419f27234664e89b9cd48bc54cad08a7Michael Graff btnRun.set("disabled", false);
ca9739800f045cd4d39014f98b920d4354b5bd14Michael Graff Y.on("click", function(){
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 Y.Test.Runner.run();
1a69a1a78cfaa86f3b68bbc965232b7876d4da2aDavid Lawrence }, btnRun);
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉
3d181bc9f12154a56bfbb536198a6c481cbcd525David Lawrence
32eddfc189108fa93e31761e13150594c7a79d2bDavid Lawrence var testJSON = new Y.Test.Case({
a095cd0ef599eb04d74fb9f9bc46ae13081c5bcbMark Andrews name: "JSON Tests",
440be4c866f6935ac069db79a414304507a664c2Michael Graff
83f8c56f43852bf9a9c6964eae285284b23f9d8dMichael Graff testJSONMeta: function() {
e21d199dca95aff5d50f133d6b064309e209af00Brian Wellington var schema = {
83f8c56f43852bf9a9c6964eae285284b23f9d8dMichael Graff metaFields: {top:"top", nested:"second.nested"}
20c266cbc999c724e03e6edd437fb4181b92f095Michael Graff },
20c266cbc999c724e03e6edd437fb4181b92f095Michael Graff data_in = {
8d1943e8ffa991d54c5406342e44d7134762e7eaMichael Graff top: "foo",
b312748a11d27fe387984973ba79975a9d6863c4Mark Andrews second: {nested: "bar"}
8907d8fa04fdaa65baf0bc6b01230b2ebde93106Mark Andrews },
c6066a8e67f40c7c12925c5634485f55713c06d6Michael Graff data_out = Y.DataSchema.JSON.apply(schema, data_in);
ca9739800f045cd4d39014f98b920d4354b5bd14Michael Graff
ca9739800f045cd4d39014f98b920d4354b5bd14Michael Graff ASSERT.isObject(data_out.meta, "Expected meta property.");
a7c76f1924d5fc914c579fd3b0276ffbddd2f65aMark Andrews ASSERT.areSame("foo", data_out.meta.top, "Expected first meta.");
a7c76f1924d5fc914c579fd3b0276ffbddd2f65aMark Andrews ASSERT.areSame("bar", data_out.meta.nested, "Expected second meta.");
e2fe1fda755f24f593406dc26fed87e8ea1bb502Tatuya JINMEI 神明達哉 ASSERT.isArray(data_out.results, "Expected results property.");
e2fe1fda755f24f593406dc26fed87e8ea1bb502Tatuya JINMEI 神明達哉 ASSERT.areSame(0, data_out.results.length, "Expected zero results.");
e2fe1fda755f24f593406dc26fed87e8ea1bb502Tatuya JINMEI 神明達哉 },
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 testJSONResults: function() {
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 var schema = {
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 resultListLocator: "response",
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 resultFields: ["name", {key:"number", parser:Y.DataType.Number.parse}, "letter"]
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 },
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 data_in = {
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 response: [
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 {name: "alpha", number: "0", letter: "a"},
07072c9456f1112705db701bb35f12dbdcb217b0Mark Andrews {name: "beta", number: "1", letter: "b"},
a7c76f1924d5fc914c579fd3b0276ffbddd2f65aMark Andrews {name: "gamma", number: "2", letter: "c"}
a7c76f1924d5fc914c579fd3b0276ffbddd2f65aMark Andrews ]
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein },
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein data_out = Y.DataSchema.JSON.apply(schema, data_in);
a7c76f1924d5fc914c579fd3b0276ffbddd2f65aMark Andrews
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein ASSERT.isArray(data_out.results, "Expected results property.");
e2fe1fda755f24f593406dc26fed87e8ea1bb502Tatuya JINMEI 神明達哉 ASSERT.areSame(3, data_out.results.length, "Expected 3 results.");
a7c76f1924d5fc914c579fd3b0276ffbddd2f65aMark Andrews ASSERT.areSame("alpha", data_out.results[0].name, "Expected first result.");
a7c76f1924d5fc914c579fd3b0276ffbddd2f65aMark Andrews ASSERT.areSame("gamma", data_out.results[2].name, "Expected last result.");
ca9739800f045cd4d39014f98b920d4354b5bd14Michael Graff ASSERT.areSame(0, data_out.results[0].number, "Expected first number to be parsed.");
ca9739800f045cd4d39014f98b920d4354b5bd14Michael Graff ASSERT.areSame(2, data_out.results[2].number, "Expected last number to be parsed.");
ca9739800f045cd4d39014f98b920d4354b5bd14Michael Graff ASSERT.isObject(data_out.meta, "Expected meta property.");
ca9739800f045cd4d39014f98b920d4354b5bd14Michael Graff },
e21d199dca95aff5d50f133d6b064309e209af00Brian Wellington
b312748a11d27fe387984973ba79975a9d6863c4Mark Andrews testJSONComplex: function() {
8907d8fa04fdaa65baf0bc6b01230b2ebde93106Mark Andrews var schema = {
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 metaFields: {metaTotal:"response['meta-total']", metaMessage:"response['data array'][1].response.message"},
ca9739800f045cd4d39014f98b920d4354b5bd14Michael Graff resultListLocator:"response['data array'][0].response['i t e m s']",
ca9739800f045cd4d39014f98b920d4354b5bd14Michael Graff resultFields: [
ca9739800f045cd4d39014f98b920d4354b5bd14Michael Graff "name",
ca9739800f045cd4d39014f98b920d4354b5bd14Michael Graff "['customer.data']['alert(\'id\')']",
ca9739800f045cd4d39014f98b920d4354b5bd14Michael Graff "['customer.data']['phone/email']",
8affb49a70de247206cb04aae87730f2b4c90dd0Mark Andrews "['array-pets'][0].name",
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 "['array-pets']"
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ]
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 },
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 data_in = {
8affb49a70de247206cb04aae87730f2b4c90dd0Mark Andrewsrequest: "orig request", response: { "meta-total": 3, "data array" : [{ position: "array.item.0", "response": { "i t e m s": [ { /* result 0 */ name: "Bob", "customer.data": { "alert('id')":10, "phone/email": "123-4567", "catch":true }, "array-pets": [ { /* pet 0 */ "name":"Brutus", "breed": "bulldog" }, { /* pet 1 */ "name":"Bobo", "breed": "bernese" } ] }, { /* result 1 */ name: "Fran", "customer.data": { "alert('id')":11, "phone/email": "234-5678", "catch":false}, "array-pets": [ { /* pet 0 */ "name":"Fido", "breed": "french poodle" } ] } ] } }, { position: "array.item.1", "response": { "message": { type: "xyz", error: false } } }], metaid: { id:1234, date: new Date() } } },
a7c76f1924d5fc914c579fd3b0276ffbddd2f65aMark Andrews data_out = Y.DataSchema.JSON.apply(schema, data_in);
8affb49a70de247206cb04aae87730f2b4c90dd0Mark Andrews
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein ASSERT.isObject(data_out.meta, "Expected meta property.");
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein ASSERT.areSame(3, data_out.meta.metaTotal, "Expected meta total.");
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein ASSERT.areSame("xyz", data_out.meta.metaMessage.type, "Expected nested meta message type.");
46993e1d9d18410a5852b7d990338b70b158855cMichael Graff ASSERT.areSame(false, data_out.meta.metaMessage.error, "Expected nested meta message error.");
46993e1d9d18410a5852b7d990338b70b158855cMichael Graff ASSERT.isArray(data_out.results, "Expected results property.");
46993e1d9d18410a5852b7d990338b70b158855cMichael Graff ASSERT.areSame(2, data_out.results.length, "Expected 2 results.");
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein ASSERT.areSame(10, data_out.results[0]["['customer.data']['alert(\'id\')']"], "Expected first id.");
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein ASSERT.areSame("234-5678", data_out.results[1]["['customer.data']['phone/email']"], "Expected second phone/email.");
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein ASSERT.areSame("Fido", data_out.results[1]["['array-pets'][0].name"], "Expected nested array item data.");
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein ASSERT.isArray(data_out.results[0]["['array-pets']"], "Expected array.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.areSame(2, data_out.results[0]["['array-pets']"].length, "Expected array length.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 },
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 testJSONError: function() {
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 var schema = {
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 resultListLocator: "response",
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 resultFields: ["name", "number", "letter"]
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 },
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 data_in = 123,
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 data_out = Y.DataSchema.JSON.apply(schema, data_in);
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.isObject(data_out.meta, "Expected meta property.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 //OBJECTASSERT.isEmpty(data_out.meta, "Expected empty meta.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ARRAYASSERT.isEmpty(data_out.results, "Expected empty results.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.isObject(data_out.error, "Expected JSON parse error.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 data_in = {123:123, 456:456};
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 data_out = Y.DataSchema.JSON.apply(schema, data_in);
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.isObject(data_out.meta, "Expected meta property.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 //OBJECTASSERT.isEmpty(data_out.meta, "Expected empty meta.");
ca9739800f045cd4d39014f98b920d4354b5bd14Michael Graff ARRAYASSERT.isEmpty(data_out.results, "Expected empty results.");
ca9739800f045cd4d39014f98b920d4354b5bd14Michael Graff ASSERT.isObject(data_out.error, "Expected results error.");
ca9739800f045cd4d39014f98b920d4354b5bd14Michael Graff
ca9739800f045cd4d39014f98b920d4354b5bd14Michael Graff data_in = {"response":"abc"};
ca9739800f045cd4d39014f98b920d4354b5bd14Michael Graff data_out = Y.DataSchema.JSON.apply(schema, data_in);
ca9739800f045cd4d39014f98b920d4354b5bd14Michael Graff
1ec39fc7a8b6ad92de3363d4c50b75e24fcd6accMichael Graff ASSERT.isObject(data_out.meta, "Expected meta property.");
ab0e5066083abcbec62513a3cc041d1f1eb9098aMichael Graff //OBJECTASSERT.isEmpty(data_out.meta, "Expected empty meta.");
a8dcebd0419f27234664e89b9cd48bc54cad08a7Michael Graff ARRAYASSERT.isEmpty(data_out.results, "Expected empty results.");
46993e1d9d18410a5852b7d990338b70b158855cMichael Graff ASSERT.isObject(data_out.error, "Expected fields error.");
038a3e6bfe6e15479b0469bd87de3a7139ad1109Brian Wellington }
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 });
a8dcebd0419f27234664e89b9cd48bc54cad08a7Michael Graff
ab0e5066083abcbec62513a3cc041d1f1eb9098aMichael Graff var testXML = new Y.Test.Case({
83f8c56f43852bf9a9c6964eae285284b23f9d8dMichael Graff name: "XML Tests",
83f8c56f43852bf9a9c6964eae285284b23f9d8dMichael Graff
83f8c56f43852bf9a9c6964eae285284b23f9d8dMichael Graff testXMLMeta: function() {
1ec39fc7a8b6ad92de3363d4c50b75e24fcd6accMichael Graff var schema = {
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 metaFields: {rootatt:{parser:Y.DataType.Number.parse, locator:"/myroot/@rootatt"}, topnode:"//top", nestedatt:"//second/@nested"}
ab0e5066083abcbec62513a3cc041d1f1eb9098aMichael Graff },
1ec39fc7a8b6ad92de3363d4c50b75e24fcd6accMichael Graff data_in = Y.DataType.XML.parse("<myroot rootatt='0'><top>topvalue</top><second nested='nestedvalue' /><item type='foo'><name>Abc</name><rank>0</rank></item><item type='bar'><name>Def</name><rank>1</rank></item><item type='bat'><name>Ghi</name><rank>2</rank></item></myroot>"),
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 data_out = Y.DataSchema.XML.apply(schema, data_in);
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.isObject(data_out.meta, "Expected meta property.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.areSame(0, data_out.meta.rootatt, "Expected rootatt.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.areSame("topvalue", data_out.meta.topnode, "Expected topvalue.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.areSame("nestedvalue", data_out.meta.nestedatt, "Expected nestedvalue.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.isArray(data_out.results, "Expected results property.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.areSame(0, data_out.results.length, "Expected zero results.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 },
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 testXMLResults: function() {
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 var schema = {
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 resultListLocator: "item",
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 resultFields: [{key:"type", locator:"@type"}, {key:"rank", parser:Y.DataType.Number.parse}, "name"]
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 },
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 data_in = Y.DataType.XML.parse("<myroot><item type='foo'><name>Abc</name><rank>0</rank></item><item type='bar'><name>Def</name><rank>1</rank></item><item type='bat'><name>Ghi</name><rank>2</rank></item></myroot>"),
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 data_out = Y.DataSchema.XML.apply(schema, data_in);
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.isArray(data_out.results, "Expected results property.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.areSame(3, data_out.results.length, "Expected 3 results.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.areSame("foo", data_out.results[0].type, "Expected first result.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.areSame("bat", data_out.results[2].type, "Expected last result.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.areSame(0, data_out.results[0].rank, "Expected first number to be parsed.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.areSame(2, data_out.results[2].rank, "Expected last number to be parsed.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.isObject(data_out.meta, "Expected meta property.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 },
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉
e2fe1fda755f24f593406dc26fed87e8ea1bb502Tatuya JINMEI 神明達哉 testXMLComplex: function() {
e2fe1fda755f24f593406dc26fed87e8ea1bb502Tatuya JINMEI 神明達哉 var schema = {
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 metaFields: {rootatt:{parser:Y.DataType.Number.parse, locator:"/myroot/@rootatt"}, topnode:"//top", nestedatt:"//second/@nested"},
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 resultListLocator: "item",
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 resultFields: [{key:"type", locator:"@type"}, {key:"rank", parser:Y.DataType.Number.parse}, "name", {key:"subnameatt", locator:"subitem/name/@type"}, {key:"age", locator:"subitem/age", parser:"number"}]
e2fe1fda755f24f593406dc26fed87e8ea1bb502Tatuya JINMEI 神明達哉 },
e2fe1fda755f24f593406dc26fed87e8ea1bb502Tatuya JINMEI 神明達哉 data_in = Y.DataType.XML.parse("<myroot rootatt='5'><top>topvalue</top><second nested='nestedsecond' /><allitems><livehere><item type='foo'><name type='nametype0'>Abc</name><rank>0</rank><subitem><name type='subnametype0'>subABC</name><age>10</age></subitem></item><item type='bar'><name type='nametype1'>Def</name><rank>1</rank><subitem><name type='subnametype1'>subDEF</name><age>11</age></subitem></item><item type='bat'><name type='nametype2'>Ghi</name><rank>2</rank><subitem><name type='subnametype2'>subGHI</name><age>12</age></subitem></item></livehere></allitems></myroot>"),
83f8c56f43852bf9a9c6964eae285284b23f9d8dMichael Graff data_out = Y.DataSchema.XML.apply(schema, data_in);
ab0e5066083abcbec62513a3cc041d1f1eb9098aMichael Graff
607dc8013a8cb34cd03b59292aa1ac01e008c9c1Michael Graff ASSERT.isObject(data_out.meta, "Expected meta property.");
83f8c56f43852bf9a9c6964eae285284b23f9d8dMichael Graff ASSERT.areSame(5, data_out.meta.rootatt, "Expected rootatt.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.areSame("topvalue", data_out.meta.topnode, "Expected topvalue.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.areSame("nestedsecond", data_out.meta.nestedatt, "Expected nestedvalue.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.isArray(data_out.results, "Expected results property.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.areSame(3, data_out.results.length, "Expected 3 results.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.areSame("foo", data_out.results[0].type, "Expected first type att.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.areSame("bat", data_out.results[2].type, "Expected last type att.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.areSame(0, data_out.results[0].rank, "Expected first number to be parsed.");
83f8c56f43852bf9a9c6964eae285284b23f9d8dMichael Graff ASSERT.areSame(2, data_out.results[2].rank, "Expected last number to be parsed.");
83f8c56f43852bf9a9c6964eae285284b23f9d8dMichael Graff ASSERT.areSame("subnametype0", data_out.results[0].subnameatt, "Expected first subitem name attribute.");
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein ASSERT.areSame("subnametype2", data_out.results[2].subnameatt, "Expected last subitemnameattribute.");
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein ASSERT.areSame(10, data_out.results[0].age, "Expected first age.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.areSame(12, data_out.results[2].age, "Expected last age.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 },
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 testXMLError: function() {
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 var schema = {
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 resultListLocator: "item",
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 resultFields: ["type", {key:"rank", parser:Y.DataType.Number.parse}, "name"]
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein },
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein data_in = Y.DataType.XML.parse("<mismatch><item type='foo'><name>Abc</name><rank>1</rank></item></mismatchedtags>"),
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 data_out = Y.DataSchema.XML.apply(schema, data_in);
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein
35f06ab0e6d5ad26176b7584de7b4d405272ba68Brian Wellington ASSERT.isObject(data_out.meta, "Expected meta property.");
83f8c56f43852bf9a9c6964eae285284b23f9d8dMichael Graff //OBJECTASSERT.isEmpty(data_out.meta, "Expected empty meta.");
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein ARRAYASSERT.isEmpty(data_out.results, "Expected empty results.");
ca9739800f045cd4d39014f98b920d4354b5bd14Michael Graff ASSERT.isObject(data_out.error, "Expected XML parse error.");
ca9739800f045cd4d39014f98b920d4354b5bd14Michael Graff }
ca9739800f045cd4d39014f98b920d4354b5bd14Michael Graff });
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein
ce5bd92088923d1c76e26d313d1d8c0b8bbe38feMichael Graff var testArray = new Y.Test.Case({
46993e1d9d18410a5852b7d990338b70b158855cMichael Graff name: "Array Tests",
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein testSimpleArrayResults: function() {
1ec39fc7a8b6ad92de3363d4c50b75e24fcd6accMichael Graff var schema = {
46993e1d9d18410a5852b7d990338b70b158855cMichael Graff resultFields: [{key:"type"}, {key:"age", parser:"number"}, "name"]
46993e1d9d18410a5852b7d990338b70b158855cMichael Graff },
f98d6edb191348477c9c5a156003df627d9bc42cBrian Wellington data_in = ["a","b","c"],
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein data_out = Y.DataSchema.Array.apply(schema, data_in);
6f1422b81ed2c5142092e2ced8e3faf0e61f3ba0Michael Graff
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.isArray(data_out.results, "Expected results property.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.areSame(3, data_out.results.length, "Expected 3 results.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.areSame("a", data_out.results[0], "Expected first string.");
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein ASSERT.areSame("c", data_out.results[2], "Expected last string.");
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein ASSERT.isObject(data_out.meta, "Expected meta property.");
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein },
a7c76f1924d5fc914c579fd3b0276ffbddd2f65aMark Andrews
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 testNestedArrayResults: function() {
83f8c56f43852bf9a9c6964eae285284b23f9d8dMichael Graff var schema = {
83f8c56f43852bf9a9c6964eae285284b23f9d8dMichael Graff resultFields: [{key:"type"}, {key:"age", parser:"number"}, "name"]
a7c76f1924d5fc914c579fd3b0276ffbddd2f65aMark Andrews },
a7c76f1924d5fc914c579fd3b0276ffbddd2f65aMark Andrews data_in = [["a","0","c"], ["d","1","f"], ["g","-2","i"]],
a7c76f1924d5fc914c579fd3b0276ffbddd2f65aMark Andrews data_out = Y.DataSchema.Array.apply(schema, data_in);
ca9739800f045cd4d39014f98b920d4354b5bd14Michael Graff
ca9739800f045cd4d39014f98b920d4354b5bd14Michael Graff ASSERT.isArray(data_out.results, "Expected results property.");
a8dcebd0419f27234664e89b9cd48bc54cad08a7Michael Graff ASSERT.areSame(3, data_out.results.length, "Expected 3 results.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.areSame("a", data_out.results[0].type, "Expected first type.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.areSame("g", data_out.results[2].type, "Expected last type.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.areSame(0, data_out.results[0].age, "Expected first age.");
ca9739800f045cd4d39014f98b920d4354b5bd14Michael Graff ASSERT.areSame(-2, data_out.results[2].age, "Expected last age.");
ca9739800f045cd4d39014f98b920d4354b5bd14Michael Graff ASSERT.areSame("c", data_out.results[0].name, "Expected first name.");
a8dcebd0419f27234664e89b9cd48bc54cad08a7Michael Graff ASSERT.areSame("i", data_out.results[2].name, "Expected last name.");
ca9739800f045cd4d39014f98b920d4354b5bd14Michael Graff ASSERT.isObject(data_out.meta, "Expected meta property.");
ca9739800f045cd4d39014f98b920d4354b5bd14Michael Graff },
a8dcebd0419f27234664e89b9cd48bc54cad08a7Michael Graff
a7c76f1924d5fc914c579fd3b0276ffbddd2f65aMark Andrews testObjectArrayResults: function() {
a7c76f1924d5fc914c579fd3b0276ffbddd2f65aMark Andrews var schema = {
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 resultFields: [{key:"type"}, {key:"age", parser:"number"}, "name"]
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 },
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 data_in = [{type:"a",age:0,name:"c"},{type:"d",age:1,name:"f"},{type:"g",age:-1,name:"i"}],
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 data_out = Y.DataSchema.Array.apply(schema, data_in);
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.isArray(data_out.results, "Expected results property.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.areSame(3, data_out.results.length, "Expected 3 results.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.areSame("a", data_out.results[0].type, "Expected first type.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.areSame("g", data_out.results[2].type, "Expected last type.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.areSame(0, data_out.results[0].age, "Expected first age.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.areSame(-1, data_out.results[2].age, "Expected last age.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.areSame("c", data_out.results[0].name, "Expected first name.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.areSame("i", data_out.results[2].name, "Expected last name.");
8d1943e8ffa991d54c5406342e44d7134762e7eaMichael Graff ASSERT.isObject(data_out.meta, "Expected meta property.");
3d181bc9f12154a56bfbb536198a6c481cbcd525David Lawrence },
8d1943e8ffa991d54c5406342e44d7134762e7eaMichael Graff
e2fe1fda755f24f593406dc26fed87e8ea1bb502Tatuya JINMEI 神明達哉 testComboArrayResults: function() {
e2fe1fda755f24f593406dc26fed87e8ea1bb502Tatuya JINMEI 神明達哉 var schema = {
46993e1d9d18410a5852b7d990338b70b158855cMichael Graff resultFields: [{key:"type"}, {key:"age", parser:"number"}, "name"]
35f06ab0e6d5ad26176b7584de7b4d405272ba68Brian Wellington },
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 data_in = [["a","0","c"], "abc", {type:"g",age:-1,name:"i"}],
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 data_out = Y.DataSchema.Array.apply(schema, data_in);
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.isArray(data_out.results, "Expected results property.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.areSame(3, data_out.results.length, "Expected 3 results.");
0a9fedafec59fd3ec2eeadc3f123db163e71c0fbMichael Graff ASSERT.areSame("a", data_out.results[0].type, "Expected first type.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.areSame("g", data_out.results[2].type, "Expected last type.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.areSame(0, data_out.results[0].age, "Expected first age.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.areSame(-1, data_out.results[2].age, "Expected last age.");
0a9fedafec59fd3ec2eeadc3f123db163e71c0fbMichael Graff ASSERT.areSame("c", data_out.results[0].name, "Expected first name.");
8470db5b12c18cfb32a757e265ce4e7789052c92Michael Graff ASSERT.areSame("i", data_out.results[2].name, "Expected last name.");
0a9fedafec59fd3ec2eeadc3f123db163e71c0fbMichael Graff ASSERT.areSame("abc", data_out.results[1], "Expected second string.");
0a9fedafec59fd3ec2eeadc3f123db163e71c0fbMichael Graff ASSERT.isObject(data_out.meta, "Expected meta property.");
d8c2b1787119de43dd6b7e3927ff193ed5df682fMark Andrews },
a7c76f1924d5fc914c579fd3b0276ffbddd2f65aMark Andrews
a7c76f1924d5fc914c579fd3b0276ffbddd2f65aMark Andrews testArrayError: function() {
0a9fedafec59fd3ec2eeadc3f123db163e71c0fbMichael Graff var schema = {
46993e1d9d18410a5852b7d990338b70b158855cMichael Graff resultFields: [{key:"type"}, {key:"age", parser:"number"}, "name"]
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 },
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 data_in = "abc",
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 data_out = Y.DataSchema.Array.apply(schema, data_in);
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 ASSERT.isObject(data_out.meta, "Expected meta property.");
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 //OBJECTASSERT.isEmpty(data_out.meta, "Expected empty meta.");
46993e1d9d18410a5852b7d990338b70b158855cMichael Graff ARRAYASSERT.isEmpty(data_out.results, "Expected empty results.");
46993e1d9d18410a5852b7d990338b70b158855cMichael Graff ASSERT.isObject(data_out.error, "Expected array parse error.");
46993e1d9d18410a5852b7d990338b70b158855cMichael Graff
46993e1d9d18410a5852b7d990338b70b158855cMichael Graff data_in = [["a","0","c"], function() {}, {type:"g",age:-1,name:"h"}];
46993e1d9d18410a5852b7d990338b70b158855cMichael Graff data_out = Y.DataSchema.Array.apply(schema, data_in);
46993e1d9d18410a5852b7d990338b70b158855cMichael Graff
46993e1d9d18410a5852b7d990338b70b158855cMichael Graff ASSERT.isObject(data_out.meta, "Expected meta property.");
46993e1d9d18410a5852b7d990338b70b158855cMichael Graff ASSERT.isArray(data_out.results, "Expected results property.");
46993e1d9d18410a5852b7d990338b70b158855cMichael Graff ASSERT.areSame(null, data_out.results[1], "Expected null result.");
8affb49a70de247206cb04aae87730f2b4c90dd0Mark Andrews }
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 });
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉
8affb49a70de247206cb04aae87730f2b4c90dd0Mark Andrews var testText = new Y.Test.Case({
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 name: "Text Tests",
240e53b13217af266abb3dae8ba103614daf2bf7Mark Andrews
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 testTextResultsAndFields: function() {
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 var schema = {
46993e1d9d18410a5852b7d990338b70b158855cMichael Graff resultDelimiter: "\n",
46993e1d9d18410a5852b7d990338b70b158855cMichael Graff fieldDelimiter: "\t",
1ec39fc7a8b6ad92de3363d4c50b75e24fcd6accMichael Graff resultFields: [{key:"type"}, {key:"age", parser:"number"}, "name"]
76c8294c81fb48b1da6e1fc5b83322a4cedb8e58Andreas Gustafsson },
76c8294c81fb48b1da6e1fc5b83322a4cedb8e58Andreas Gustafsson data_in = "foo\t0\tabc\nbar\t1\tdef\nbat\t-1\tghi",
76c8294c81fb48b1da6e1fc5b83322a4cedb8e58Andreas Gustafsson data_out = Y.DataSchema.Text.apply(schema, data_in);
76c8294c81fb48b1da6e1fc5b83322a4cedb8e58Andreas Gustafsson
20c266cbc999c724e03e6edd437fb4181b92f095Michael Graff ASSERT.isArray(data_out.results, "Expected results property.");
46993e1d9d18410a5852b7d990338b70b158855cMichael Graff ASSERT.areSame(3, data_out.results.length, "Expected 3 results.");
20c266cbc999c724e03e6edd437fb4181b92f095Michael Graff ASSERT.areSame("foo", data_out.results[0].type, "Expected first type.");
20c266cbc999c724e03e6edd437fb4181b92f095Michael Graff ASSERT.areSame("bat", data_out.results[2].type, "Expected last type.");
20c266cbc999c724e03e6edd437fb4181b92f095Michael Graff ASSERT.areSame(0, data_out.results[0].age, "Expected first age.");
f6579931b38b357013736ce3efc79a34480af5ceBrian Wellington ASSERT.areSame(-1, data_out.results[2].age, "Expected last age.");
f6579931b38b357013736ce3efc79a34480af5ceBrian Wellington ASSERT.areSame("abc", data_out.results[0].name, "Expected first name.");
f6579931b38b357013736ce3efc79a34480af5ceBrian Wellington ASSERT.areSame("ghi", data_out.results[2].name, "Expected last name.");
20c266cbc999c724e03e6edd437fb4181b92f095Michael Graff ASSERT.isObject(data_out.meta, "Expected meta property.");
20c266cbc999c724e03e6edd437fb4181b92f095Michael Graff },
20c266cbc999c724e03e6edd437fb4181b92f095Michael Graff
20c266cbc999c724e03e6edd437fb4181b92f095Michael Graff testTextResultsOnly: function() {
46993e1d9d18410a5852b7d990338b70b158855cMichael Graff var schema = {
46993e1d9d18410a5852b7d990338b70b158855cMichael Graff resultDelimiter: ","
46993e1d9d18410a5852b7d990338b70b158855cMichael Graff },
46993e1d9d18410a5852b7d990338b70b158855cMichael Graff data_in = "foo,bar,bat,",
46993e1d9d18410a5852b7d990338b70b158855cMichael Graff data_out = Y.DataSchema.Text.apply(schema, data_in);
76c8294c81fb48b1da6e1fc5b83322a4cedb8e58Andreas Gustafsson
76c8294c81fb48b1da6e1fc5b83322a4cedb8e58Andreas Gustafsson ASSERT.isArray(data_out.results, "Expected results property.");
76c8294c81fb48b1da6e1fc5b83322a4cedb8e58Andreas Gustafsson ASSERT.areSame(3, data_out.results.length, "Expected 3 results.");
76c8294c81fb48b1da6e1fc5b83322a4cedb8e58Andreas Gustafsson ASSERT.areSame("foo", data_out.results[0], "Expected first result.");
46993e1d9d18410a5852b7d990338b70b158855cMichael Graff ASSERT.areSame("bat", data_out.results[2], "Expected last result.");
46993e1d9d18410a5852b7d990338b70b158855cMichael Graff ASSERT.isObject(data_out.meta, "Expected meta property.");
46993e1d9d18410a5852b7d990338b70b158855cMichael Graff },
46993e1d9d18410a5852b7d990338b70b158855cMichael Graff
46993e1d9d18410a5852b7d990338b70b158855cMichael Graff testTextError: function() {
9317787889b6d2437b2f8e77583b49246f7511feAndreas Gustafsson var schema = {
9317787889b6d2437b2f8e77583b49246f7511feAndreas Gustafsson resultDelimiter: "\n",
40f53fa8d9c6a4fc38c0014495e7a42b08f52481David Lawrence fieldDelimiter: ","
46993e1d9d18410a5852b7d990338b70b158855cMichael Graff },
46993e1d9d18410a5852b7d990338b70b158855cMichael Graff data_in = 123,
46993e1d9d18410a5852b7d990338b70b158855cMichael Graff data_out = Y.DataSchema.Text.apply(schema, data_in);
46993e1d9d18410a5852b7d990338b70b158855cMichael Graff
46993e1d9d18410a5852b7d990338b70b158855cMichael Graff ASSERT.isObject(data_out.meta, "Expected meta property.");
46993e1d9d18410a5852b7d990338b70b158855cMichael Graff //OBJECTASSERT.isEmpty(data_out.meta, "Expected empty meta.");
46993e1d9d18410a5852b7d990338b70b158855cMichael Graff ARRAYASSERT.isEmpty(data_out.results, "Expected empty results.");
20c266cbc999c724e03e6edd437fb4181b92f095Michael Graff ASSERT.isObject(data_out.error, "Expected text parse error.");
20c266cbc999c724e03e6edd437fb4181b92f095Michael Graff
76c8294c81fb48b1da6e1fc5b83322a4cedb8e58Andreas Gustafsson schema = {
76c8294c81fb48b1da6e1fc5b83322a4cedb8e58Andreas Gustafsson foo: "bar"
76c8294c81fb48b1da6e1fc5b83322a4cedb8e58Andreas Gustafsson };
76c8294c81fb48b1da6e1fc5b83322a4cedb8e58Andreas Gustafsson data_in = "foo,0,abc\nbar,1,def\nbat,-1,ghi",
76c8294c81fb48b1da6e1fc5b83322a4cedb8e58Andreas Gustafsson data_out = Y.DataSchema.Text.apply(schema, data_in);
20c266cbc999c724e03e6edd437fb4181b92f095Michael Graff
20c266cbc999c724e03e6edd437fb4181b92f095Michael Graff ASSERT.isObject(data_out.meta, "Expected meta property.");
46993e1d9d18410a5852b7d990338b70b158855cMichael Graff //OBJECTASSERT.isEmpty(data_out.meta, "Expected empty meta.");
20c266cbc999c724e03e6edd437fb4181b92f095Michael Graff ARRAYASSERT.isEmpty(data_out.results, "Expected empty results.");
20c266cbc999c724e03e6edd437fb4181b92f095Michael Graff ASSERT.isObject(data_out.error, "Expected text parse error.");
20c266cbc999c724e03e6edd437fb4181b92f095Michael Graff }
20c266cbc999c724e03e6edd437fb4181b92f095Michael Graff });
20c266cbc999c724e03e6edd437fb4181b92f095Michael Graff
f6579931b38b357013736ce3efc79a34480af5ceBrian Wellington Y.Test.Runner.add(testJSON);
f6579931b38b357013736ce3efc79a34480af5ceBrian Wellington Y.Test.Runner.add(testXML);
f6579931b38b357013736ce3efc79a34480af5ceBrian Wellington Y.Test.Runner.add(testArray);
20c266cbc999c724e03e6edd437fb4181b92f095Michael Graff Y.Test.Runner.add(testText);
20c266cbc999c724e03e6edd437fb4181b92f095Michael Graff Y.Test.Runner.run();
20c266cbc999c724e03e6edd437fb4181b92f095Michael Graff });
20c266cbc999c724e03e6edd437fb4181b92f095Michael Graff})();
20c266cbc999c724e03e6edd437fb4181b92f095Michael Graff</script>
f3ca27e9fe307b55e35ea8d7b37351650630e5a3Andreas Gustafsson</body>
46993e1d9d18410a5852b7d990338b70b158855cMichael Graff</html>
46993e1d9d18410a5852b7d990338b70b158855cMichael Graff