diff options
author | David Barksdale <amatus@amatus.name> | 2016-09-10 17:58:46 -0500 |
---|---|---|
committer | David Barksdale <amatus@amatus.name> | 2016-09-10 18:32:35 -0500 |
commit | 475f9f3ac7688e58505690d420cafe6ae8bb8b5f (patch) | |
tree | b1bf14b10751fe4e9e146ad7244ec86bb123893d /blockly/tests/jsunit/xml_test.js | |
parent | 923561056ddb63ce82fd1ec2a5e249bbdae267bf (diff) |
Merge blockly sub-tree
Diffstat (limited to 'blockly/tests/jsunit/xml_test.js')
-rw-r--r-- | blockly/tests/jsunit/xml_test.js | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/blockly/tests/jsunit/xml_test.js b/blockly/tests/jsunit/xml_test.js new file mode 100644 index 0000000..25e2655 --- /dev/null +++ b/blockly/tests/jsunit/xml_test.js @@ -0,0 +1,90 @@ +/** + * @license + * Blockly Tests + * + * Copyright 2014 Google Inc. + * https://developers.google.com/blockly/ + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +'use strict'; + +var XML_TEXT = ['<xml xmlns="http://www.w3.org/1999/xhtml">', + ' <block type="controls_repeat_ext" inline="true" x="21" y="23">', + ' <value name="TIMES">', + ' <block type="math_number">', + ' <field name="NUM">10</field>', + ' </block>', + ' </value>', + ' <statement name="DO">', + ' <block type="variables_set" inline="true">', + ' <field name="VAR">item</field>', + ' <value name="VALUE">', + ' <block type="lists_create_empty"></block>', + ' </value>', + ' <next>', + ' <block type="text_print" inline="false">', + ' <value name="TEXT">', + ' <block type="text">', + ' <field name="TEXT">Hello</field>', + ' </block>', + ' </value>', + ' </block>', + ' </next>', + ' </block>', + ' </statement>', + ' </block>', + '</xml>'].join('\n'); + +function test_textToDom() { + var dom = Blockly.Xml.textToDom(XML_TEXT); + assertEquals('XML tag', 'xml', dom.nodeName); + assertEquals('Block tags', 6, dom.getElementsByTagName('block').length); +} + +function test_domToText() { + var dom = Blockly.Xml.textToDom(XML_TEXT); + var text = Blockly.Xml.domToText(dom); + assertEquals('Round trip', XML_TEXT.replace(/\s+/g, ''), + text.replace(/\s+/g, '')); +} + +function test_domToWorkspace() { + Blockly.Blocks.test_block = { + init: function() { + this.jsonInit({ + message0: 'test', + }); + } + }; + + try { + var dom = Blockly.Xml.textToDom( + '<xml xmlns="http://www.w3.org/1999/xhtml">' + + ' <block type="test_block" inline="true" x="21" y="23">' + + ' </block>' + + '</xml>'); + var workspace = new Blockly.Workspace(); + Blockly.Xml.domToWorkspace(dom, workspace); + assertEquals('Block count', 1, workspace.getAllBlocks().length); + } finally { + delete Blockly.Blocks.test_block; + } +} + +function test_domToPrettyText() { + var dom = Blockly.Xml.textToDom(XML_TEXT); + var text = Blockly.Xml.domToPrettyText(dom); + assertEquals('Round trip', XML_TEXT.replace(/\s+/g, ''), + text.replace(/\s+/g, '')); +} |