diff options
Diffstat (limited to 'blockly/tests/generators/unittest.js')
-rw-r--r-- | blockly/tests/generators/unittest.js | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/blockly/tests/generators/unittest.js b/blockly/tests/generators/unittest.js new file mode 100644 index 0000000..d2b94e6 --- /dev/null +++ b/blockly/tests/generators/unittest.js @@ -0,0 +1,117 @@ +/** + * @license + * Visual Blocks Language + * + * Copyright 2012 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. + */ + +/** + * @fileoverview Unit test blocks for Blockly. + * @author fraser@google.com (Neil Fraser) + */ +'use strict'; + +Blockly.Blocks['unittest_main'] = { + // Container for unit tests. + init: function() { + this.setColour(65); + this.appendDummyInput() + .appendField('run tests'); + this.appendStatementInput('DO'); + this.setTooltip('Executes the enclosed unit tests,\n' + + 'then prints a summary.'); + }, + getVars: function() { + return ['unittestResults']; + } +}; + +Blockly.Blocks['unittest_assertequals'] = { + // Asserts that a value equals another value. + init: function() { + this.setColour(65); + this.setPreviousStatement(true); + this.setNextStatement(true); + this.appendValueInput('MESSAGE') + .appendField('name') + .setCheck('String'); + this.appendValueInput('ACTUAL') + .appendField('actual'); + this.appendValueInput('EXPECTED') + .appendField('expected'); + this.setTooltip('Tests that "actual == expected".'); + }, + getVars: function() { + return ['unittestResults']; + } +}; + +Blockly.Blocks['unittest_assertvalue'] = { + // Asserts that a value is true, false, or null. + init: function() { + this.setColour(65); + this.setPreviousStatement(true); + this.setNextStatement(true); + this.appendValueInput('MESSAGE', 'test name') + .appendField('name') + .setCheck('String'); + this.appendValueInput('ACTUAL') + .appendField('assert') + .appendField(new Blockly.FieldDropdown( + [['true', 'TRUE'], ['false', 'FALSE'], ['null', 'NULL']]), 'EXPECTED'); + this.setTooltip('Tests that the value is true, false, or null.'); + }, + getVars: function() { + return ['unittestResults']; + } +}; + +Blockly.Blocks['unittest_fail'] = { + // Always assert an error. + init: function() { + this.setColour(65); + this.setPreviousStatement(true); + this.setNextStatement(true); + this.appendDummyInput() + .appendField(new Blockly.FieldTextInput('test name'), 'MESSAGE') + .appendField('fail'); + this.setTooltip('Records an error.'); + }, + getVars: function() { + return ['unittestResults']; + } +}; + +Blockly.Blocks['unittest_adjustindex'] = { + // Adjusts the indexing based on current setting. + init: function() { + this.jsonInit({ + "message0": "adjusted %1", + "args0": [ + { + "type": "input_value", + "name": "INDEX", + "check": "Number" + } + ], + "inputsInline": true, + "output": "Number", + "colour": 65, + "tooltip": "Adjusts the value based on whether generated code is using " + + "zero or one based indexing" + }); + } +}; |