mirror of
https://github.com/google/blockly.git
synced 2026-03-11 15:50:10 +01:00
Merge branch 'develop' into goog.module-prep
This resolves a conflict in `blockly_uncompressed.js`, and missing updates to `test/deps.js`, caused by PR #5041.
This commit is contained in:
@@ -151,17 +151,12 @@ goog.addDependency('../../core/renderers/zelos/measurables/row_elements.js', ['B
|
||||
goog.addDependency('../../core/renderers/zelos/measurables/rows.js', ['Blockly.zelos.BottomRow', 'Blockly.zelos.TopRow'], ['Blockly.blockRendering.BottomRow', 'Blockly.blockRendering.TopRow', 'Blockly.utils.object']);
|
||||
goog.addDependency('../../core/renderers/zelos/path_object.js', ['Blockly.zelos.PathObject'], ['Blockly.blockRendering.PathObject', 'Blockly.utils.Svg', 'Blockly.utils.dom', 'Blockly.utils.object', 'Blockly.zelos.ConstantProvider']);
|
||||
goog.addDependency('../../core/renderers/zelos/renderer.js', ['Blockly.zelos.Renderer'], ['Blockly.InsertionMarkerManager', 'Blockly.blockRendering', 'Blockly.blockRendering.Renderer', 'Blockly.connectionTypes', 'Blockly.constants', 'Blockly.utils.object', 'Blockly.zelos.ConstantProvider', 'Blockly.zelos.Drawer', 'Blockly.zelos.MarkerSvg', 'Blockly.zelos.PathObject', 'Blockly.zelos.RenderInfo']);
|
||||
goog.addDependency('../../core/requires.js', ['Blockly.requires'], ['Blockly', 'Blockly.Comment', 'Blockly.ContextMenuItems', 'Blockly.FieldAngle', 'Blockly.FieldCheckbox', 'Blockly.FieldColour', 'Blockly.FieldDropdown', 'Blockly.FieldImage', 'Blockly.FieldLabelSerializable', 'Blockly.FieldMultilineInput', 'Blockly.FieldNumber', 'Blockly.FieldTextInput', 'Blockly.FieldVariable', 'Blockly.FlyoutButton', 'Blockly.Generator', 'Blockly.HorizontalFlyout', 'Blockly.Mutator', 'Blockly.ShortcutItems', 'Blockly.Themes.Classic', 'Blockly.Themes.Dark', 'Blockly.Themes.Deuteranopia', 'Blockly.Themes.HighContrast', 'Blockly.Themes.Tritanopia', 'Blockly.Toolbox', 'Blockly.Trashcan', 'Blockly.VariablesDynamic', 'Blockly.VerticalFlyout', 'Blockly.Warning', 'Blockly.ZoomControls', 'Blockly.geras.Renderer', 'Blockly.thrasos.Renderer', 'Blockly.zelos.Renderer']);
|
||||
goog.addDependency('../../core/requires.js', ['Blockly.requires'], ['Blockly', 'Blockly.Comment', 'Blockly.ContextMenuItems', 'Blockly.FieldAngle', 'Blockly.FieldCheckbox', 'Blockly.FieldColour', 'Blockly.FieldDropdown', 'Blockly.FieldImage', 'Blockly.FieldLabelSerializable', 'Blockly.FieldMultilineInput', 'Blockly.FieldNumber', 'Blockly.FieldTextInput', 'Blockly.FieldVariable', 'Blockly.FlyoutButton', 'Blockly.Generator', 'Blockly.HorizontalFlyout', 'Blockly.Mutator', 'Blockly.ShortcutItems', 'Blockly.Themes.Classic', 'Blockly.Toolbox', 'Blockly.Trashcan', 'Blockly.VariablesDynamic', 'Blockly.VerticalFlyout', 'Blockly.Warning', 'Blockly.ZoomControls', 'Blockly.geras.Renderer', 'Blockly.thrasos.Renderer', 'Blockly.zelos.Renderer']);
|
||||
goog.addDependency('../../core/scrollbar.js', ['Blockly.Scrollbar', 'Blockly.ScrollbarPair'], ['Blockly.Events', 'Blockly.Touch', 'Blockly.browserEvents', 'Blockly.utils', 'Blockly.utils.Coordinate', 'Blockly.utils.Metrics', 'Blockly.utils.Svg', 'Blockly.utils.dom']);
|
||||
goog.addDependency('../../core/shortcut_items.js', ['Blockly.ShortcutItems'], ['Blockly.Gesture', 'Blockly.ShortcutRegistry', 'Blockly.utils.KeyCodes']);
|
||||
goog.addDependency('../../core/shortcut_registry.js', ['Blockly.ShortcutRegistry'], ['Blockly.utils.KeyCodes', 'Blockly.utils.object']);
|
||||
goog.addDependency('../../core/theme.js', ['Blockly.Theme'], ['Blockly.registry', 'Blockly.utils', 'Blockly.utils.object']);
|
||||
goog.addDependency('../../core/theme/classic.js', ['Blockly.Themes.Classic'], ['Blockly.Theme']);
|
||||
goog.addDependency('../../core/theme/dark.js', ['Blockly.Themes.Dark'], ['Blockly.Theme']);
|
||||
goog.addDependency('../../core/theme/deuteranopia.js', ['Blockly.Themes.Deuteranopia'], ['Blockly.Theme']);
|
||||
goog.addDependency('../../core/theme/highcontrast.js', ['Blockly.Themes.HighContrast'], ['Blockly.Theme']);
|
||||
goog.addDependency('../../core/theme/modern.js', ['Blockly.Themes.Modern'], ['Blockly.Theme']);
|
||||
goog.addDependency('../../core/theme/tritanopia.js', ['Blockly.Themes.Tritanopia'], ['Blockly.Theme']);
|
||||
goog.addDependency('../../core/theme/zelos.js', ['Blockly.Themes.Zelos'], ['Blockly.Theme']);
|
||||
goog.addDependency('../../core/theme_manager.js', ['Blockly.ThemeManager'], ['Blockly.Theme']);
|
||||
goog.addDependency('../../core/toolbox/category.js', ['Blockly.ToolboxCategory'], ['Blockly.ISelectableToolboxItem', 'Blockly.ToolboxItem', 'Blockly.registry', 'Blockly.utils', 'Blockly.utils.aria', 'Blockly.utils.dom', 'Blockly.utils.object', 'Blockly.utils.toolbox'], {'lang': 'es5'});
|
||||
|
||||
@@ -890,6 +890,96 @@ suite('Blocks', function() {
|
||||
chai.assert.equal(this.getNext().length, 6);
|
||||
});
|
||||
});
|
||||
suite('Setting Parent Block', function() {
|
||||
setup(function() {
|
||||
this.printBlock = Blockly.Xml.domToBlock(Blockly.Xml.textToDom(
|
||||
'<block type="text_print">' +
|
||||
' <value name="TEXT">' +
|
||||
' <block type="text_join">' +
|
||||
' <mutation items="2"></mutation>' +
|
||||
' <value name="ADD0">' +
|
||||
' <block type="text">' +
|
||||
' </block>' +
|
||||
' </value>' +
|
||||
' </block>' +
|
||||
' </value>' +
|
||||
'</block>'
|
||||
), this.workspace);
|
||||
this.textJoinBlock = this.printBlock.getInputTargetBlock('TEXT');
|
||||
this.textBlock = this.textJoinBlock.getInputTargetBlock('ADD0');
|
||||
});
|
||||
|
||||
function assertBlockIsOnlyChild(parent, child, inputName) {
|
||||
chai.assert.equal(parent.getChildren().length, 1);
|
||||
chai.assert.equal(parent.getInputTargetBlock(inputName), child);
|
||||
chai.assert.equal(child.getParent(), parent);
|
||||
}
|
||||
function assertNonParentAndOrphan(nonParent, orphan, inputName) {
|
||||
chai.assert.equal(nonParent.getChildren().length, 0);
|
||||
chai.assert.isNull(nonParent.getInputTargetBlock('TEXT'));
|
||||
chai.assert.isNull(orphan.getParent());
|
||||
}
|
||||
function assertOriginalSetup() {
|
||||
assertBlockIsOnlyChild(this.printBlock, this.textJoinBlock, 'TEXT');
|
||||
assertBlockIsOnlyChild(this.textJoinBlock, this.textBlock, 'ADD0');
|
||||
}
|
||||
|
||||
test('Setting to connected parent', function() {
|
||||
chai.assert.doesNotThrow(this.textJoinBlock.setParent
|
||||
.bind(this.textJoinBlock, this.printBlock));
|
||||
assertOriginalSetup.call(this);
|
||||
});
|
||||
test('Setting to new parent after connecting to it', function() {
|
||||
this.textJoinBlock.outputConnection.disconnect();
|
||||
this.textBlock.outputConnection
|
||||
.connect(this.printBlock.getInput('TEXT').connection);
|
||||
chai.assert.doesNotThrow(this.textBlock.setParent
|
||||
.bind(this.textBlock, this.printBlock));
|
||||
assertBlockIsOnlyChild(this.printBlock, this.textBlock, 'TEXT');
|
||||
});
|
||||
test('Setting to new parent while connected to other block', function() {
|
||||
// Setting to grandparent with no available input connection.
|
||||
chai.assert.throws(this.textBlock.setParent
|
||||
.bind(this.textBlock, this.printBlock));
|
||||
this.textJoinBlock.outputConnection.disconnect();
|
||||
// Setting to block with available input connection.
|
||||
chai.assert.throws(this.textBlock.setParent
|
||||
.bind(this.textBlock, this.printBlock));
|
||||
assertNonParentAndOrphan(this.printBlock, this.textJoinBlock, 'TEXT');
|
||||
assertBlockIsOnlyChild(this.textJoinBlock, this.textBlock, 'ADD0');
|
||||
});
|
||||
test('Setting to same parent after disconnecting from it', function() {
|
||||
this.textJoinBlock.outputConnection.disconnect();
|
||||
chai.assert.throws(this.textJoinBlock.setParent
|
||||
.bind(this.textJoinBlock, this.printBlock));
|
||||
assertNonParentAndOrphan(this.printBlock, this.textJoinBlock, 'TEXT');
|
||||
});
|
||||
test('Setting to new parent when orphan', function() {
|
||||
this.textBlock.outputConnection.disconnect();
|
||||
// When new parent has no available input connection.
|
||||
chai.assert.throws(this.textBlock.setParent
|
||||
.bind(this.textBlock, this.printBlock));
|
||||
this.textJoinBlock.outputConnection.disconnect();
|
||||
// When new parent has available input connection.
|
||||
chai.assert.throws(this.textBlock.setParent
|
||||
.bind(this.textBlock, this.printBlock));
|
||||
|
||||
assertNonParentAndOrphan(this.printBlock, this.textJoinBlock, 'TEXT');
|
||||
assertNonParentAndOrphan(this.printBlock, this.textBlock, 'TEXT');
|
||||
assertNonParentAndOrphan(this.textJoinBlock, this.textBlock, 'ADD0');
|
||||
});
|
||||
test('Setting parent to null after disconnecting', function() {
|
||||
this.textBlock.outputConnection.disconnect();
|
||||
chai.assert.doesNotThrow(this.textBlock.setParent
|
||||
.bind(this.textBlock, null));
|
||||
assertNonParentAndOrphan(this.textJoinBlock, this.textBlock, 'ADD0');
|
||||
});
|
||||
test('Setting parent to null without disconnecting', function() {
|
||||
chai.assert.throws(this.textBlock.setParent
|
||||
.bind(this.textBlock, null));
|
||||
assertOriginalSetup.call(this);
|
||||
});
|
||||
});
|
||||
suite('Remove Connections Programmatically', function() {
|
||||
test('Output', function() {
|
||||
var block = createRenderedBlock(this.workspace, 'row_block');
|
||||
@@ -1106,11 +1196,16 @@ suite('Blocks', function() {
|
||||
});
|
||||
suite('Getting/Setting Field (Values)', function() {
|
||||
setup(function() {
|
||||
this.workspace = Blockly.inject('blocklyDiv');
|
||||
this.block = Blockly.Xml.domToBlock(Blockly.Xml.textToDom(
|
||||
'<block type="text"><field name = "TEXT">test</field></block>'
|
||||
), this.workspace);
|
||||
});
|
||||
|
||||
teardown(function() {
|
||||
workspaceTeardown.call(this, this.workspace);
|
||||
});
|
||||
|
||||
test('Getting Field', function() {
|
||||
chai.assert.instanceOf(this.block.getField('TEXT'), Blockly.Field);
|
||||
});
|
||||
@@ -1289,8 +1384,8 @@ suite('Blocks', function() {
|
||||
});
|
||||
suite('Connecting and Disconnecting', function() {
|
||||
test('Connect Block to Next', function() {
|
||||
var blockA = createRenderedBlock(this.workspace,'stack_block');
|
||||
var blockB = createRenderedBlock(this.workspace,'stack_block');
|
||||
var blockA = createRenderedBlock(this.workspace, 'stack_block');
|
||||
var blockB = createRenderedBlock(this.workspace, 'stack_block');
|
||||
|
||||
blockA.setCollapsed(true);
|
||||
assertCollapsed(blockA);
|
||||
@@ -1298,8 +1393,8 @@ suite('Blocks', function() {
|
||||
assertNotCollapsed(blockB);
|
||||
});
|
||||
test('Connect Block to Value Input', function() {
|
||||
var blockA = createRenderedBlock(this.workspace,'row_block');
|
||||
var blockB = createRenderedBlock(this.workspace,'row_block');
|
||||
var blockA = createRenderedBlock(this.workspace, 'row_block');
|
||||
var blockB = createRenderedBlock(this.workspace, 'row_block');
|
||||
|
||||
blockA.setCollapsed(true);
|
||||
assertCollapsed(blockA);
|
||||
@@ -1310,8 +1405,8 @@ suite('Blocks', function() {
|
||||
chai.assert.isFalse(isBlockHidden(blockB));
|
||||
});
|
||||
test('Connect Block to Statement Input', function() {
|
||||
var blockA = createRenderedBlock(this.workspace,'statement_block');
|
||||
var blockB = createRenderedBlock(this.workspace,'stack_block');
|
||||
var blockA = createRenderedBlock(this.workspace, 'statement_block');
|
||||
var blockB = createRenderedBlock(this.workspace, 'stack_block');
|
||||
|
||||
blockA.setCollapsed(true);
|
||||
assertCollapsed(blockA);
|
||||
@@ -1323,9 +1418,9 @@ suite('Blocks', function() {
|
||||
chai.assert.isFalse(isBlockHidden(blockB));
|
||||
});
|
||||
test('Connect Block to Child of Collapsed - Input', function() {
|
||||
var blockA = createRenderedBlock(this.workspace,'row_block');
|
||||
var blockB = createRenderedBlock(this.workspace,'row_block');
|
||||
var blockC = createRenderedBlock(this.workspace,'row_block');
|
||||
var blockA = createRenderedBlock(this.workspace, 'row_block');
|
||||
var blockB = createRenderedBlock(this.workspace, 'row_block');
|
||||
var blockC = createRenderedBlock(this.workspace, 'row_block');
|
||||
|
||||
blockA.getInput('INPUT').connection.connect(blockB.outputConnection);
|
||||
blockA.setCollapsed(true);
|
||||
@@ -1340,9 +1435,9 @@ suite('Blocks', function() {
|
||||
chai.assert.isFalse(isBlockHidden(blockC));
|
||||
});
|
||||
test('Connect Block to Child of Collapsed - Next', function() {
|
||||
var blockA = createRenderedBlock(this.workspace,'statement_block');
|
||||
var blockB = createRenderedBlock(this.workspace,'stack_block');
|
||||
var blockC = createRenderedBlock(this.workspace,'stack_block');
|
||||
var blockA = createRenderedBlock(this.workspace, 'statement_block');
|
||||
var blockB = createRenderedBlock(this.workspace, 'stack_block');
|
||||
var blockC = createRenderedBlock(this.workspace, 'stack_block');
|
||||
|
||||
blockA.getInput('STATEMENT').connection
|
||||
.connect(blockB.previousConnection);
|
||||
@@ -1358,9 +1453,9 @@ suite('Blocks', function() {
|
||||
chai.assert.isFalse(isBlockHidden(blockC));
|
||||
});
|
||||
test('Connect Block to Value Input Already Taken', function() {
|
||||
var blockA = createRenderedBlock(this.workspace,'row_block');
|
||||
var blockB = createRenderedBlock(this.workspace,'row_block');
|
||||
var blockC = createRenderedBlock(this.workspace,'row_block');
|
||||
var blockA = createRenderedBlock(this.workspace, 'row_block');
|
||||
var blockB = createRenderedBlock(this.workspace, 'row_block');
|
||||
var blockC = createRenderedBlock(this.workspace, 'row_block');
|
||||
|
||||
blockA.getInput('INPUT').connection.connect(blockB.outputConnection);
|
||||
blockA.setCollapsed(true);
|
||||
@@ -1377,9 +1472,9 @@ suite('Blocks', function() {
|
||||
chai.assert.isFalse(isBlockHidden(blockC));
|
||||
});
|
||||
test('Connect Block to Statement Input Already Taken', function() {
|
||||
var blockA = createRenderedBlock(this.workspace,'statement_block');
|
||||
var blockB = createRenderedBlock(this.workspace,'stack_block');
|
||||
var blockC = createRenderedBlock(this.workspace,'stack_block');
|
||||
var blockA = createRenderedBlock(this.workspace, 'statement_block');
|
||||
var blockB = createRenderedBlock(this.workspace, 'stack_block');
|
||||
var blockC = createRenderedBlock(this.workspace, 'stack_block');
|
||||
|
||||
blockA.getInput('STATEMENT').connection
|
||||
.connect(blockB.previousConnection);
|
||||
@@ -1398,9 +1493,9 @@ suite('Blocks', function() {
|
||||
chai.assert.isFalse(isBlockHidden(blockC));
|
||||
});
|
||||
test('Connect Block with Child - Input', function() {
|
||||
var blockA = createRenderedBlock(this.workspace,'row_block');
|
||||
var blockB = createRenderedBlock(this.workspace,'row_block');
|
||||
var blockC = createRenderedBlock(this.workspace,'row_block');
|
||||
var blockA = createRenderedBlock(this.workspace, 'row_block');
|
||||
var blockB = createRenderedBlock(this.workspace, 'row_block');
|
||||
var blockC = createRenderedBlock(this.workspace, 'row_block');
|
||||
|
||||
blockB.getInput('INPUT').connection.connect(blockC.outputConnection);
|
||||
blockA.setCollapsed(true);
|
||||
@@ -1415,9 +1510,9 @@ suite('Blocks', function() {
|
||||
chai.assert.isFalse(isBlockHidden(blockC));
|
||||
});
|
||||
test('Connect Block with Child - Statement', function() {
|
||||
var blockA = createRenderedBlock(this.workspace,'statement_block');
|
||||
var blockB = createRenderedBlock(this.workspace,'stack_block');
|
||||
var blockC = createRenderedBlock(this.workspace,'stack_block');
|
||||
var blockA = createRenderedBlock(this.workspace, 'statement_block');
|
||||
var blockB = createRenderedBlock(this.workspace, 'stack_block');
|
||||
var blockC = createRenderedBlock(this.workspace, 'stack_block');
|
||||
|
||||
blockB.nextConnection.connect(blockC.previousConnection);
|
||||
blockA.setCollapsed(true);
|
||||
@@ -1433,8 +1528,8 @@ suite('Blocks', function() {
|
||||
chai.assert.isFalse(isBlockHidden(blockC));
|
||||
});
|
||||
test('Disconnect Block from Value Input', function() {
|
||||
var blockA = createRenderedBlock(this.workspace,'row_block');
|
||||
var blockB = createRenderedBlock(this.workspace,'row_block');
|
||||
var blockA = createRenderedBlock(this.workspace, 'row_block');
|
||||
var blockB = createRenderedBlock(this.workspace, 'row_block');
|
||||
|
||||
blockA.getInput('INPUT').connection.connect(blockB.outputConnection);
|
||||
blockA.setCollapsed(true);
|
||||
@@ -1444,8 +1539,8 @@ suite('Blocks', function() {
|
||||
chai.assert.isFalse(isBlockHidden(blockB));
|
||||
});
|
||||
test('Disconnect Block from Statement Input', function() {
|
||||
var blockA = createRenderedBlock(this.workspace,'statement_block');
|
||||
var blockB = createRenderedBlock(this.workspace,'stack_block');
|
||||
var blockA = createRenderedBlock(this.workspace, 'statement_block');
|
||||
var blockB = createRenderedBlock(this.workspace, 'stack_block');
|
||||
|
||||
blockA.getInput('STATEMENT').connection
|
||||
.connect(blockB.previousConnection);
|
||||
@@ -1456,9 +1551,9 @@ suite('Blocks', function() {
|
||||
chai.assert.isFalse(isBlockHidden(blockB));
|
||||
});
|
||||
test('Disconnect Block from Child of Collapsed - Input', function() {
|
||||
var blockA = createRenderedBlock(this.workspace,'row_block');
|
||||
var blockB = createRenderedBlock(this.workspace,'row_block');
|
||||
var blockC = createRenderedBlock(this.workspace,'row_block');
|
||||
var blockA = createRenderedBlock(this.workspace, 'row_block');
|
||||
var blockB = createRenderedBlock(this.workspace, 'row_block');
|
||||
var blockC = createRenderedBlock(this.workspace, 'row_block');
|
||||
|
||||
blockA.getInput('INPUT').connection.connect(blockB.outputConnection);
|
||||
blockB.getInput('INPUT').connection.connect(blockC.outputConnection);
|
||||
@@ -1471,9 +1566,9 @@ suite('Blocks', function() {
|
||||
chai.assert.isFalse(isBlockHidden(blockC));
|
||||
});
|
||||
test('Disconnect Block from Child of Collapsed - Next', function() {
|
||||
var blockA = createRenderedBlock(this.workspace,'statement_block');
|
||||
var blockB = createRenderedBlock(this.workspace,'stack_block');
|
||||
var blockC = createRenderedBlock(this.workspace,'stack_block');
|
||||
var blockA = createRenderedBlock(this.workspace, 'statement_block');
|
||||
var blockB = createRenderedBlock(this.workspace, 'stack_block');
|
||||
var blockC = createRenderedBlock(this.workspace, 'stack_block');
|
||||
|
||||
blockA.getInput('STATEMENT').connection
|
||||
.connect(blockB.previousConnection);
|
||||
@@ -1487,9 +1582,9 @@ suite('Blocks', function() {
|
||||
chai.assert.isFalse(isBlockHidden(blockC));
|
||||
});
|
||||
test('Disconnect Block with Child - Input', function() {
|
||||
var blockA = createRenderedBlock(this.workspace,'row_block');
|
||||
var blockB = createRenderedBlock(this.workspace,'row_block');
|
||||
var blockC = createRenderedBlock(this.workspace,'row_block');
|
||||
var blockA = createRenderedBlock(this.workspace, 'row_block');
|
||||
var blockB = createRenderedBlock(this.workspace, 'row_block');
|
||||
var blockC = createRenderedBlock(this.workspace, 'row_block');
|
||||
|
||||
blockB.getInput('INPUT').connection.connect(blockC.outputConnection);
|
||||
blockA.getInput('INPUT').connection.connect(blockB.outputConnection);
|
||||
@@ -1503,9 +1598,9 @@ suite('Blocks', function() {
|
||||
chai.assert.isFalse(isBlockHidden(blockC));
|
||||
});
|
||||
test('Disconnect Block with Child - Statement', function() {
|
||||
var blockA = createRenderedBlock(this.workspace,'statement_block');
|
||||
var blockB = createRenderedBlock(this.workspace,'stack_block');
|
||||
var blockC = createRenderedBlock(this.workspace,'stack_block');
|
||||
var blockA = createRenderedBlock(this.workspace, 'statement_block');
|
||||
var blockB = createRenderedBlock(this.workspace, 'stack_block');
|
||||
var blockC = createRenderedBlock(this.workspace, 'stack_block');
|
||||
|
||||
blockB.nextConnection.connect(blockC.previousConnection);
|
||||
blockA.getInput('STATEMENT').connection
|
||||
@@ -1522,7 +1617,7 @@ suite('Blocks', function() {
|
||||
});
|
||||
suite('Adding and Removing Block Parts', function() {
|
||||
test('Add Previous Connection', function() {
|
||||
var blockA = createRenderedBlock(this.workspace,'empty_block');
|
||||
var blockA = createRenderedBlock(this.workspace, 'empty_block');
|
||||
blockA.setCollapsed(true);
|
||||
assertCollapsed(blockA);
|
||||
blockA.setPreviousStatement(true);
|
||||
@@ -1530,7 +1625,7 @@ suite('Blocks', function() {
|
||||
chai.assert.isNotNull(blockA.previousConnection);
|
||||
});
|
||||
test('Add Next Connection', function() {
|
||||
var blockA = createRenderedBlock(this.workspace,'empty_block');
|
||||
var blockA = createRenderedBlock(this.workspace, 'empty_block');
|
||||
blockA.setCollapsed(true);
|
||||
assertCollapsed(blockA);
|
||||
blockA.setNextStatement(true);
|
||||
@@ -1538,7 +1633,7 @@ suite('Blocks', function() {
|
||||
chai.assert.isNotNull(blockA.nextConnection);
|
||||
});
|
||||
test('Add Input', function() {
|
||||
var blockA = createRenderedBlock(this.workspace,'empty_block');
|
||||
var blockA = createRenderedBlock(this.workspace, 'empty_block');
|
||||
blockA.setCollapsed(true);
|
||||
assertCollapsed(blockA);
|
||||
blockA.appendDummyInput('NAME');
|
||||
@@ -1546,7 +1641,7 @@ suite('Blocks', function() {
|
||||
chai.assert.isNotNull(blockA.getInput('NAME'));
|
||||
});
|
||||
test('Add Field', function() {
|
||||
var blockA = createRenderedBlock(this.workspace,'empty_block');
|
||||
var blockA = createRenderedBlock(this.workspace, 'empty_block');
|
||||
var input = blockA.appendDummyInput('NAME');
|
||||
blockA.setCollapsed(true);
|
||||
assertCollapsed(blockA);
|
||||
@@ -1557,14 +1652,14 @@ suite('Blocks', function() {
|
||||
chai.assert.equal(field.getText(), 'test');
|
||||
});
|
||||
test('Add Icon', function() {
|
||||
var blockA = createRenderedBlock(this.workspace,'empty_block');
|
||||
var blockA = createRenderedBlock(this.workspace, 'empty_block');
|
||||
blockA.setCollapsed(true);
|
||||
assertCollapsed(blockA);
|
||||
blockA.setCommentText('test');
|
||||
assertCollapsed(blockA);
|
||||
});
|
||||
test('Remove Previous Connection', function() {
|
||||
var blockA = createRenderedBlock(this.workspace,'empty_block');
|
||||
var blockA = createRenderedBlock(this.workspace, 'empty_block');
|
||||
blockA.setPreviousStatement(true);
|
||||
blockA.setCollapsed(true);
|
||||
assertCollapsed(blockA);
|
||||
@@ -1573,7 +1668,7 @@ suite('Blocks', function() {
|
||||
chai.assert.isNull(blockA.previousConnection);
|
||||
});
|
||||
test('Remove Next Connection', function() {
|
||||
var blockA = createRenderedBlock(this.workspace,'empty_block');
|
||||
var blockA = createRenderedBlock(this.workspace, 'empty_block');
|
||||
blockA.setNextStatement(true);
|
||||
blockA.setCollapsed(true);
|
||||
assertCollapsed(blockA);
|
||||
@@ -1582,7 +1677,7 @@ suite('Blocks', function() {
|
||||
chai.assert.isNull(blockA.nextConnection);
|
||||
});
|
||||
test('Remove Input', function() {
|
||||
var blockA = createRenderedBlock(this.workspace,'empty_block');
|
||||
var blockA = createRenderedBlock(this.workspace, 'empty_block');
|
||||
blockA.appendDummyInput('NAME');
|
||||
blockA.setCollapsed(true);
|
||||
assertCollapsed(blockA);
|
||||
@@ -1591,7 +1686,7 @@ suite('Blocks', function() {
|
||||
chai.assert.isNull(blockA.getInput('NAME'));
|
||||
});
|
||||
test('Remove Field', function() {
|
||||
var blockA = createRenderedBlock(this.workspace,'empty_block');
|
||||
var blockA = createRenderedBlock(this.workspace, 'empty_block');
|
||||
var input = blockA.appendDummyInput('NAME');
|
||||
input.appendField(new Blockly.FieldLabel('test'), 'FIELD');
|
||||
blockA.setCollapsed(true);
|
||||
@@ -1602,7 +1697,7 @@ suite('Blocks', function() {
|
||||
chai.assert.isNull(field);
|
||||
});
|
||||
test('Remove Icon', function() {
|
||||
var blockA = createRenderedBlock(this.workspace,'empty_block');
|
||||
var blockA = createRenderedBlock(this.workspace, 'empty_block');
|
||||
blockA.setCommentText('test');
|
||||
blockA.setCollapsed(true);
|
||||
assertCollapsed(blockA);
|
||||
@@ -1612,7 +1707,7 @@ suite('Blocks', function() {
|
||||
});
|
||||
suite('Renaming Vars', function() {
|
||||
test('Simple Rename', function() {
|
||||
var blockA = createRenderedBlock(this.workspace,'variable_block');
|
||||
var blockA = createRenderedBlock(this.workspace, 'variable_block');
|
||||
|
||||
blockA.setCollapsed(true);
|
||||
assertCollapsed(blockA, 'x');
|
||||
@@ -1622,7 +1717,7 @@ suite('Blocks', function() {
|
||||
assertCollapsed(blockA, 'y');
|
||||
});
|
||||
test('Coalesce, Different Case', function() {
|
||||
var blockA = createRenderedBlock(this.workspace,'variable_block');
|
||||
var blockA = createRenderedBlock(this.workspace, 'variable_block');
|
||||
|
||||
blockA.setCollapsed(true);
|
||||
assertCollapsed(blockA, 'x');
|
||||
@@ -1634,8 +1729,8 @@ suite('Blocks', function() {
|
||||
});
|
||||
suite('Disabled Blocks', function() {
|
||||
test('Children of Collapsed Blocks Should Enable Properly', function() {
|
||||
var blockA = createRenderedBlock(this.workspace,'statement_block');
|
||||
var blockB = createRenderedBlock(this.workspace,'stack_block');
|
||||
var blockA = createRenderedBlock(this.workspace, 'statement_block');
|
||||
var blockB = createRenderedBlock(this.workspace, 'stack_block');
|
||||
blockA.getInput('STATEMENT').connection
|
||||
.connect(blockB.previousConnection);
|
||||
// Disable the block and collapse it.
|
||||
@@ -1651,8 +1746,8 @@ suite('Blocks', function() {
|
||||
chai.assert.isFalse(blockB.getSvgRoot().classList.contains('blocklyDisabled'));
|
||||
});
|
||||
test('Children of Collapsed Block Should Not Update', function() {
|
||||
var blockA = createRenderedBlock(this.workspace,'statement_block');
|
||||
var blockB = createRenderedBlock(this.workspace,'stack_block');
|
||||
var blockA = createRenderedBlock(this.workspace, 'statement_block');
|
||||
var blockB = createRenderedBlock(this.workspace, 'stack_block');
|
||||
blockA.getInput('STATEMENT').connection
|
||||
.connect(blockB.previousConnection);
|
||||
|
||||
@@ -1670,8 +1765,8 @@ suite('Blocks', function() {
|
||||
sinon.assert.notCalled(blockUpdateDisabled);
|
||||
});
|
||||
test('Disabled Children of Collapsed Blocks Should Stay Disabled', function() {
|
||||
var blockA = createRenderedBlock(this.workspace,'statement_block');
|
||||
var blockB = createRenderedBlock(this.workspace,'stack_block');
|
||||
var blockA = createRenderedBlock(this.workspace, 'statement_block');
|
||||
var blockB = createRenderedBlock(this.workspace, 'stack_block');
|
||||
blockA.getInput('STATEMENT').connection
|
||||
.connect(blockB.previousConnection);
|
||||
|
||||
|
||||
@@ -934,7 +934,7 @@ suite('Events', function() {
|
||||
new Blockly.Events.Click(block1),
|
||||
new Blockly.Events.BubbleOpen(block2, true, 'mutator'),
|
||||
new Blockly.Events.Click(block2),
|
||||
new Blockly.Events.BubbleOpen(block3, true,'warning'),
|
||||
new Blockly.Events.BubbleOpen(block3, true, 'warning'),
|
||||
new Blockly.Events.Click(block3)
|
||||
];
|
||||
var filteredEvents = Blockly.Events.filter(events, true);
|
||||
|
||||
@@ -71,7 +71,7 @@ suite('Angle Fields', function() {
|
||||
validTestCaseAssertField, assertFieldDefault);
|
||||
|
||||
testHelpers.runFromJsonSuiteTests(
|
||||
Blockly.FieldAngle, validValueTestCases,invalidValueTestCases,
|
||||
Blockly.FieldAngle, validValueTestCases, invalidValueTestCases,
|
||||
validTestCaseAssertField, assertFieldDefault);
|
||||
|
||||
suite('setValue', function() {
|
||||
|
||||
@@ -74,7 +74,7 @@ suite('Checkbox Fields', function() {
|
||||
validTestCaseAssertField, assertFieldDefault);
|
||||
|
||||
testHelpers.runFromJsonSuiteTests(
|
||||
Blockly.FieldCheckbox, validValueTestCases,invalidValueTestCases,
|
||||
Blockly.FieldCheckbox, validValueTestCases, invalidValueTestCases,
|
||||
validTestCaseAssertField, assertFieldDefault);
|
||||
|
||||
suite('setValue', function() {
|
||||
|
||||
@@ -99,7 +99,7 @@ suite('Colour Fields', function() {
|
||||
validTestCaseAssertField, assertFieldDefault);
|
||||
|
||||
testHelpers.runFromJsonSuiteTests(
|
||||
Blockly.FieldColour, validValueTestCases,invalidValueTestCases,
|
||||
Blockly.FieldColour, validValueTestCases, invalidValueTestCases,
|
||||
validTestCaseAssertField, assertFieldDefault);
|
||||
|
||||
suite('setValue', function() {
|
||||
|
||||
@@ -114,8 +114,8 @@ suite('Dropdown Fields', function() {
|
||||
suite('Validators', function() {
|
||||
setup(function() {
|
||||
this.dropdownField = new Blockly.FieldDropdown([
|
||||
["1a","1A"], ["1b","1B"], ["1c","1C"],
|
||||
["2a","2A"], ["2b","2B"], ["2c","2C"]]);
|
||||
["1a", "1A"], ["1b", "1B"], ["1c", "1C"],
|
||||
["2a", "2A"], ["2b", "2B"], ["2c", "2C"]]);
|
||||
});
|
||||
teardown(function() {
|
||||
this.dropdownField.setValidator(null);
|
||||
|
||||
@@ -59,7 +59,7 @@ suite('Image Fields', function() {
|
||||
validTestCaseAssertField);
|
||||
|
||||
testHelpers.runFromJsonSuiteTests(
|
||||
Blockly.FieldImage, validValueCreationTestCases,invalidValueTestCases,
|
||||
Blockly.FieldImage, validValueCreationTestCases, invalidValueTestCases,
|
||||
validTestCaseAssertField);
|
||||
|
||||
/**
|
||||
|
||||
@@ -64,7 +64,7 @@ suite('Label Serializable Fields', function() {
|
||||
invalidValueTestCases, validTestCaseAssertField, assertFieldDefault);
|
||||
|
||||
testHelpers.runFromJsonSuiteTests(
|
||||
Blockly.FieldLabelSerializable, validValueTestCases,invalidValueTestCases,
|
||||
Blockly.FieldLabelSerializable, validValueTestCases, invalidValueTestCases,
|
||||
validTestCaseAssertField, assertFieldDefault);
|
||||
|
||||
suite('setValue', function() {
|
||||
|
||||
@@ -64,7 +64,7 @@ suite('Label Fields', function() {
|
||||
validTestCaseAssertField, assertFieldDefault);
|
||||
|
||||
testHelpers.runFromJsonSuiteTests(
|
||||
Blockly.FieldLabel, validValueTestCases,invalidValueTestCases,
|
||||
Blockly.FieldLabel, validValueTestCases, invalidValueTestCases,
|
||||
validTestCaseAssertField, assertFieldDefault);
|
||||
|
||||
suite('setValue', function() {
|
||||
|
||||
@@ -66,7 +66,7 @@ suite('Multiline Input Fields', function() {
|
||||
validTestCaseAssertField, assertFieldDefault);
|
||||
|
||||
testHelpers.runFromJsonSuiteTests(
|
||||
Blockly.FieldMultilineInput, validValueTestCases,invalidValueTestCases,
|
||||
Blockly.FieldMultilineInput, validValueTestCases, invalidValueTestCases,
|
||||
validTestCaseAssertField, assertFieldDefault);
|
||||
|
||||
suite('setValue', function() {
|
||||
|
||||
@@ -88,7 +88,7 @@ suite('Number Fields', function() {
|
||||
validTestCaseAssertField, assertFieldDefault);
|
||||
|
||||
testHelpers.runFromJsonSuiteTests(
|
||||
Blockly.FieldNumber, validValueTestCases,invalidValueTestCases,
|
||||
Blockly.FieldNumber, validValueTestCases, invalidValueTestCases,
|
||||
validTestCaseAssertField, assertFieldDefault);
|
||||
|
||||
suite('setValue', function() {
|
||||
|
||||
@@ -64,7 +64,7 @@ suite('Text Input Fields', function() {
|
||||
validTestCaseAssertField, assertFieldDefault);
|
||||
|
||||
testHelpers.runFromJsonSuiteTests(
|
||||
Blockly.FieldTextInput, validValueTestCases,invalidValueTestCases,
|
||||
Blockly.FieldTextInput, validValueTestCases, invalidValueTestCases,
|
||||
validTestCaseAssertField, assertFieldDefault);
|
||||
|
||||
suite('setValue', function() {
|
||||
|
||||
@@ -90,7 +90,7 @@ suite('Flyout', function() {
|
||||
this.flyout.targetWorkspace.toolboxPosition =
|
||||
Blockly.utils.toolbox.Position.RIGHT;
|
||||
this.flyout.toolboxPosition_ = Blockly.utils.toolbox.Position.RIGHT;
|
||||
chai.assert.equal(this.flyout.getX(), 90,'x + width should be aligned with toolbox');
|
||||
chai.assert.equal(this.flyout.getX(), 90, 'x + width should be aligned with toolbox');
|
||||
});
|
||||
});
|
||||
// These tests simulate a trashcan flyout, i.e. the flyout under test is on the
|
||||
@@ -260,7 +260,7 @@ suite('Flyout', function() {
|
||||
{type: "button"},
|
||||
{type: "button"}
|
||||
];
|
||||
var expectedGaps = [20,24,24];
|
||||
var expectedGaps = [20, 24, 24];
|
||||
var flyoutInfo = flyoutSpy.returnValues[0];
|
||||
var contents = flyoutInfo.contents;
|
||||
var gaps = flyoutInfo.gaps;
|
||||
|
||||
@@ -45,7 +45,7 @@ suite('Gesture', function() {
|
||||
|
||||
setup(function() {
|
||||
sharedTestSetup.call(this);
|
||||
defineBasicBlockWithField(this.sharedCleanup);
|
||||
defineBasicBlockWithField();
|
||||
var toolbox = document.getElementById('gesture-test-toolbox');
|
||||
this.workspace = Blockly.inject('blocklyDiv', {toolbox: toolbox});
|
||||
});
|
||||
|
||||
@@ -18,7 +18,7 @@ suite('Key Down', function() {
|
||||
* @param {Blockly.Workspace} workspace The workspace to create a new block on.
|
||||
*/
|
||||
function setSelectedBlock(workspace) {
|
||||
defineStackBlock(this.sharedCleanup);
|
||||
defineStackBlock();
|
||||
Blockly.selected = workspace.newBlock('stack_block');
|
||||
}
|
||||
|
||||
|
||||
@@ -20,8 +20,8 @@ suite('Names', function() {
|
||||
|
||||
test('Safe name', function() {
|
||||
var varDB = new Blockly.Names('window,door');
|
||||
chai.assert.equal(varDB.safeName_(''), 'unnamed','SafeName empty.');
|
||||
chai.assert.equal(varDB.safeName_('foobar'), 'foobar','SafeName ok.');
|
||||
chai.assert.equal(varDB.safeName_(''), 'unnamed', 'SafeName empty.');
|
||||
chai.assert.equal(varDB.safeName_('foobar'), 'foobar', 'SafeName ok.');
|
||||
chai.assert.equal(varDB.safeName_('9lives'), 'my_9lives', 'SafeName number start.');
|
||||
chai.assert.equal(varDB.safeName_('lives9'), 'lives9', 'SafeName number end.');
|
||||
chai.assert.equal(varDB.safeName_('!@#$'), '____', 'SafeName special chars.');
|
||||
|
||||
@@ -765,7 +765,7 @@ suite('Procedures', function() {
|
||||
'Callers are enabled when their definition is enabled (call ' +
|
||||
i + ')');
|
||||
}
|
||||
chai.assert.equal(firedEvents.length,3,
|
||||
chai.assert.equal(firedEvents.length, 3,
|
||||
'An event was fired for the definition and each caller');
|
||||
for (var i = 0; i < 3; i++) {
|
||||
chai.assert.equal(firedEvents[i].group, 'g2',
|
||||
@@ -801,7 +801,7 @@ suite('Procedures', function() {
|
||||
'Caller remains in disabled state when the definition is enabled');
|
||||
chai.assert.isTrue(this.barCalls[1].isEnabled(),
|
||||
'Caller returns to previous enabled state when the definition is enabled');
|
||||
chai.assert.equal(firedEvents.length,2,
|
||||
chai.assert.equal(firedEvents.length, 2,
|
||||
'An event was fired for the definition and the enabled caller');
|
||||
for (var i = 0; i < 2; i++) {
|
||||
chai.assert.equal(firedEvents[i].group, 'g2',
|
||||
|
||||
@@ -29,7 +29,14 @@ async function runMochaTestsInBrowser() {
|
||||
// Run in headless mode on Github Actions.
|
||||
if (process.env.CI) {
|
||||
options.capabilities['goog:chromeOptions'] = {
|
||||
args: ['--headless', '--no-sandbox', '--disable-dev-shm-usage']
|
||||
args: [
|
||||
'--headless', '--no-sandbox', '--disable-dev-shm-usage',
|
||||
'--allow-file-access-from-files',
|
||||
]
|
||||
};
|
||||
} else {
|
||||
options.capabilities['goog:chromeOptions'] = {
|
||||
args: ['--allow-file-access-from-files']
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -456,7 +456,7 @@ function assertNthCallEventArgEquals(spy, n, instanceType, expectedProperties,
|
||||
assertXmlProperties_(eventArg, xmlProperties);
|
||||
}
|
||||
|
||||
function defineStackBlock(sharedCleanupObj) {
|
||||
function defineStackBlock() {
|
||||
Blockly.defineBlocksWithJsonArray([{
|
||||
"type": "stack_block",
|
||||
"message0": "",
|
||||
@@ -465,7 +465,7 @@ function defineStackBlock(sharedCleanupObj) {
|
||||
}]);
|
||||
}
|
||||
|
||||
function defineRowBlock(sharedCleanupObj) {
|
||||
function defineRowBlock() {
|
||||
Blockly.defineBlocksWithJsonArray([{
|
||||
"type": "row_block",
|
||||
"message0": "%1",
|
||||
@@ -479,7 +479,7 @@ function defineRowBlock(sharedCleanupObj) {
|
||||
}]);
|
||||
}
|
||||
|
||||
function defineStatementBlock(sharedCleanupObj) {
|
||||
function defineStatementBlock() {
|
||||
Blockly.defineBlocksWithJsonArray([{
|
||||
"type": "statement_block",
|
||||
"message0": "%1",
|
||||
@@ -496,7 +496,7 @@ function defineStatementBlock(sharedCleanupObj) {
|
||||
"helpUrl": ""
|
||||
}]);
|
||||
}
|
||||
function defineBasicBlockWithField(sharedCleanupObj) {
|
||||
function defineBasicBlockWithField() {
|
||||
Blockly.defineBlocksWithJsonArray([{
|
||||
"type": "test_field_block",
|
||||
"message0": "%1",
|
||||
|
||||
@@ -20,7 +20,7 @@ suite('Theme', function() {
|
||||
Blockly.registry.typeMap_['theme'] = {};
|
||||
});
|
||||
|
||||
function defineThemeTestBlocks(sharedCleanupObj) {
|
||||
function defineThemeTestBlocks() {
|
||||
Blockly.defineBlocksWithJsonArray([{
|
||||
"type": "stack_block",
|
||||
"message0": "",
|
||||
@@ -117,7 +117,7 @@ suite('Theme', function() {
|
||||
});
|
||||
|
||||
test('Set Theme', function() {
|
||||
defineThemeTestBlocks(this.sharedCleanup);
|
||||
defineThemeTestBlocks();
|
||||
try {
|
||||
var blockStyles = createBlockStyles();
|
||||
var theme = new Blockly.Theme('themeName', blockStyles);
|
||||
|
||||
@@ -414,7 +414,7 @@ suite('Toolbox', function() {
|
||||
});
|
||||
test('Select collapsible item -> Should close flyout', function() {
|
||||
var newItem = getCollapsibleItem(this.toolbox);
|
||||
testHideFlyout(this.toolbox,null, newItem);
|
||||
testHideFlyout(this.toolbox, null, newItem);
|
||||
});
|
||||
test('Select selectable item -> Should open flyout', function() {
|
||||
var showFlyoutstub = sinon.stub(this.toolbox.flyout_, 'show');
|
||||
|
||||
@@ -14,7 +14,7 @@ suite('Utils', function() {
|
||||
|
||||
test('genUid', function() {
|
||||
var uuids = {};
|
||||
chai.assert.equal([1,2,3].indexOf(4), -1);
|
||||
chai.assert.equal([1, 2, 3].indexOf(4), -1);
|
||||
for (var i = 0; i < 1000; i++) {
|
||||
var uuid = Blockly.utils.genUid();
|
||||
chai.assert.isFalse(uuid in uuids, 'UUID different: ' + uuid);
|
||||
|
||||
@@ -150,7 +150,7 @@ suite('Workspace comment', function() {
|
||||
test('Initial position', function() {
|
||||
var xy = this.comment.getXY();
|
||||
chai.assert.equal(xy.x, 0, 'Initial X position');
|
||||
chai.assert.equal(xy.y, 0,'Initial Y position');
|
||||
chai.assert.equal(xy.y, 0, 'Initial Y position');
|
||||
});
|
||||
|
||||
test('moveBy', function() {
|
||||
@@ -177,7 +177,7 @@ suite('Workspace comment', function() {
|
||||
chai.assert.equal(
|
||||
this.comment.getContent(), 'comment text');
|
||||
chai.assert.equal(
|
||||
this.workspace.undoStack_.length, 1,'Workspace undo stack');
|
||||
this.workspace.undoStack_.length, 1, 'Workspace undo stack');
|
||||
});
|
||||
|
||||
test('Set to same value', function() {
|
||||
|
||||
@@ -72,7 +72,7 @@ suite('WorkspaceSvg', function() {
|
||||
|
||||
Blockly.Xml.appendDomToWorkspace(dom, this.workspace);
|
||||
var blocks = this.workspace.getAllBlocks(false);
|
||||
chai.assert.equal(blocks.length, 2,'Block count');
|
||||
chai.assert.equal(blocks.length, 2, 'Block count');
|
||||
var shadowBlock = blocks[1];
|
||||
chai.assert.exists(shadowBlock.getSvgRoot());
|
||||
|
||||
@@ -185,7 +185,7 @@ suite('WorkspaceSvg', function() {
|
||||
assertSpyFiredViewportEvent(
|
||||
eventsFireStub, workspace, expectedProperties);
|
||||
assertSpyFiredViewportEvent(
|
||||
changeListenerSpy, workspace,expectedProperties);
|
||||
changeListenerSpy, workspace, expectedProperties);
|
||||
sinon.assert.callCount(changeListenerSpy, expectedEventCount);
|
||||
sinon.assert.callCount(eventsFireStub, expectedEventCount);
|
||||
}
|
||||
|
||||
@@ -455,13 +455,13 @@ function testAWorkspace() {
|
||||
test('Over instance limit', function() {
|
||||
this.workspace.options.maxInstances['get_var_block'] = 1;
|
||||
chai.assert.equal(this.workspace.remainingCapacityOfType('get_var_block'),
|
||||
-1,'With maxInstances limit 1');
|
||||
-1, 'With maxInstances limit 1');
|
||||
});
|
||||
|
||||
test('Over instance limit of 0', function() {
|
||||
this.workspace.options.maxInstances['get_var_block'] = 0;
|
||||
chai.assert.equal(this.workspace.remainingCapacityOfType('get_var_block'),
|
||||
-2,'With maxInstances limit 0');
|
||||
-2, 'With maxInstances limit 0');
|
||||
});
|
||||
|
||||
test('Over instance limit with multiple block types', function() {
|
||||
@@ -470,7 +470,7 @@ function testAWorkspace() {
|
||||
this.workspace.newBlock('');
|
||||
this.workspace.options.maxInstances['get_var_block'] = 1;
|
||||
chai.assert.equal(this.workspace.remainingCapacityOfType('get_var_block'),
|
||||
-1,'With maxInstances limit 1');
|
||||
-1, 'With maxInstances limit 1');
|
||||
});
|
||||
|
||||
test('Over instance limit of 0 with multiple block types', function() {
|
||||
@@ -479,7 +479,7 @@ function testAWorkspace() {
|
||||
this.workspace.newBlock('');
|
||||
this.workspace.options.maxInstances['get_var_block'] = 0;
|
||||
chai.assert.equal(this.workspace.remainingCapacityOfType('get_var_block'),
|
||||
-2,'With maxInstances limit 0');
|
||||
-2, 'With maxInstances limit 0');
|
||||
});
|
||||
});
|
||||
|
||||
@@ -611,7 +611,7 @@ function testAWorkspace() {
|
||||
|
||||
test('Trivial', function() {
|
||||
chai.assert.equal(
|
||||
this.workspace.getBlockById(this.blockA.id),this.blockA);
|
||||
this.workspace.getBlockById(this.blockA.id), this.blockA);
|
||||
chai.assert.equal(
|
||||
this.workspace.getBlockById(this.blockB.id), this.blockB);
|
||||
});
|
||||
@@ -1294,7 +1294,7 @@ function testAWorkspace() {
|
||||
|
||||
this.workspace.undo(true);
|
||||
// Expect that variable 'id2' is recreated
|
||||
assertBlockVarModelName(this.workspace,0, 'name2');
|
||||
assertBlockVarModelName(this.workspace, 0, 'name2');
|
||||
chai.assert.isNull(this.workspace.getVariableById('id1'));
|
||||
assertVariableValues(this.workspace, 'name2', 'type2', 'id2');
|
||||
});
|
||||
|
||||
@@ -713,7 +713,7 @@ suite('XML', function() {
|
||||
});
|
||||
suite('appendDomToWorkspace', function() {
|
||||
setup(function() {
|
||||
addBlockTypeToCleanup(this.sharedCleanup,'test_block');
|
||||
addBlockTypeToCleanup(this.sharedCleanup, 'test_block');
|
||||
Blockly.Blocks['test_block'] = {
|
||||
init: function() {
|
||||
this.jsonInit({
|
||||
|
||||
Reference in New Issue
Block a user