mirror of
https://github.com/scratchfoundation/scratch-blocks.git
synced 2025-08-28 22:10:31 -04:00
Make jsonInit able to create dropdowns again
and add a test to detect future regressions.
This commit is contained in:
parent
c6a5aa715b
commit
468d899e04
2 changed files with 72 additions and 0 deletions
|
@ -1246,6 +1246,9 @@ Blockly.Block.prototype.interpolate_ = function(message, args, lastDummyAlign) {
|
|||
case 'field_dropdown':
|
||||
field = new Blockly.FieldDropdown(element['options']);
|
||||
break;
|
||||
case 'field_iconmenu':
|
||||
field = new Blockly.FieldIconMenu(element['options']);
|
||||
break;
|
||||
case 'field_image':
|
||||
field = new Blockly.FieldImage(element['src'],
|
||||
element['width'], element['height'], element['alt']);
|
||||
|
|
69
tests/jsunit/block_test.js
Normal file
69
tests/jsunit/block_test.js
Normal file
|
@ -0,0 +1,69 @@
|
|||
/**
|
||||
* @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);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue