/** * @license * Blockly Tests * * Copyright 2016 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'; function test_appendField_FieldIconMenu() { var workspace = new Blockly.Workspace(); var block_name = 'test_jsonInit_FieldIconMenu'; var field_name = 'TEST_FIELD'; var dropdown_options = [{ value: 'VALUE' }]; Blockly.Blocks[block_name] = { init: function() { this.appendDummyInput() .appendField(new Blockly.FieldIconMenu(dropdown_options), field_name); this.setOutput(true); } }; var block = workspace.newBlock(block_name); assertTrue('IconMenu field not added to block by appendField', block.getField(field_name) instanceof Blockly.FieldIconMenu); } function test_jsonInit_FieldIconMenu() { var workspace = new Blockly.Workspace(); var block_name = 'test_jsonInit_FieldIconMenu'; var field_name = 'TEST_FIELD'; var dropdown_options = [{ value: 'VALUE' }]; Blockly.Blocks[block_name] = { init: function() { this.jsonInit({ message0: '%1', args0: [{ type: 'field_iconmenu', name: field_name, options: dropdown_options }], output: null }); } }; var block = workspace.newBlock(block_name); assertTrue('IconMenu field not added to block by jsonInit', block.getField(field_name) instanceof Blockly.FieldIconMenu); } function test_jsonInit_colors() { var workspace = new Blockly.Workspace(); var block_name = 'test_jsonInit_FieldDropdown_colors'; var field_name = 'TEST_FIELD'; var dropdown_options = [ ['value', 'VALUE'] ]; Blockly.Blocks[block_name] = { init: function() { this.jsonInit({ message0: '%1', args0: [{ type: 'field_dropdown', name: field_name, options: dropdown_options }], output: null, colour: '#111111', colourSecondary: '#222222', colourTertiary: '#333333', colourQuaternary: '#444444' }); } }; var block = workspace.newBlock(block_name); var field = block.getField(field_name); assertEquals('Block primary colour not set', block.getColour(), '#111111'); assertEquals('Block secondary colour not set', block.getColourSecondary(), '#222222'); assertEquals('Block tertiary colour not set', block.getColourTertiary(), '#333333'); assertEquals('Block quaternary colour not set', block.getColourQuaternary(), '#444444'); assertEquals('Source block is not correct', field.sourceBlock_, block); }