/** * @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 = ['', ' ', ' ', ' ', ' 10', ' ', ' ', ' ', ' ', ' item', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' Hello', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ''].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( '' + ' ' + ' ' + ''); 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, '')); }