mirror of
https://github.com/google/blockly.git
synced 2026-01-11 02:47:09 +01:00
Add deprecation warnings and tests
This commit is contained in:
@@ -248,10 +248,11 @@ Blockly.Connection.prototype.isConnected = function() {
|
||||
* @param {Blockly.Connection} target Connection to check compatibility with.
|
||||
* @return {number} Blockly.Connection.CAN_CONNECT if the connection is legal,
|
||||
* an error code otherwise.
|
||||
* @deprecated July 2020
|
||||
* @deprecated July 2020. Use the workspace's connectionChecker.
|
||||
*/
|
||||
Blockly.Connection.prototype.canConnectWithReason = function(target) {
|
||||
// TODO: deprecation warning with date, plus tests.
|
||||
console.warn('Connection.prototype.canConnectWithReason was deprecated in ' +
|
||||
'July 2020 and will be deleted in July 2021.');
|
||||
return this.getConnectionChecker().canConnectWithReason(
|
||||
this, target, false);
|
||||
};
|
||||
@@ -262,11 +263,11 @@ Blockly.Connection.prototype.canConnectWithReason = function(target) {
|
||||
* @param {Blockly.Connection} target The connection to check compatibility
|
||||
* with.
|
||||
* @package
|
||||
* @deprecated July 2020
|
||||
* @deprecated July 2020. Use the workspace's connectionChecker.
|
||||
*/
|
||||
Blockly.Connection.prototype.checkConnection = function(target) {
|
||||
// TODO: Add deprecation warning notices *and* add tests to make sure these
|
||||
// still work (for any blocks that use them).
|
||||
console.warn('Connection.prototype.checkConnection was deprecated in ' +
|
||||
'July 2020 and will be deleted in July 2021.');
|
||||
var checker = this.getConnectionChecker();
|
||||
var reason = checker.canConnectWithReason(this, target, false);
|
||||
if (reason != Blockly.Connection.CAN_CONNECT) {
|
||||
@@ -288,9 +289,11 @@ Blockly.Connection.prototype.getConnectionChecker = function() {
|
||||
* Check if the two connections can be dragged to connect to each other.
|
||||
* @param {!Blockly.Connection} candidate A nearby connection to check.
|
||||
* @return {boolean} True if the connection is allowed, false otherwise.
|
||||
* @deprecated July 2020
|
||||
* @deprecated July 2020. Use the workspace's connectionChecker.
|
||||
*/
|
||||
Blockly.Connection.prototype.isConnectionAllowed = function(candidate) {
|
||||
console.warn('Connection.prototype.isConnectionAllowed was deprecated in ' +
|
||||
'July 2020 and will be deleted in July 2021.');
|
||||
return this.getConnectionChecker().canConnect(this, candidate, true);
|
||||
};
|
||||
|
||||
|
||||
264
tests/mocha/connection_checker_test.js
Normal file
264
tests/mocha/connection_checker_test.js
Normal file
@@ -0,0 +1,264 @@
|
||||
/**
|
||||
* @license
|
||||
* Copyright 2020 Google LLC
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
suite('Connection checker', function() {
|
||||
suiteSetup(function() {
|
||||
this.checker = new Blockly.ConnectionChecker();
|
||||
});
|
||||
suite('Safety checks', function() {
|
||||
function assertReasonHelper(checker, one, two, reason) {
|
||||
chai.assert.equal(checker.canConnectWithReason(one, two), reason);
|
||||
// Order should not matter.
|
||||
chai.assert.equal(checker.canConnectWithReason(two, one), reason);
|
||||
}
|
||||
|
||||
test('Target Null', function() {
|
||||
var connection = new Blockly.Connection({}, Blockly.INPUT_VALUE);
|
||||
assertReasonHelper(
|
||||
this.checker,
|
||||
connection,
|
||||
null,
|
||||
Blockly.Connection.REASON_TARGET_NULL);
|
||||
});
|
||||
test('Target Self', function() {
|
||||
var block = {workspace: 1};
|
||||
var connection1 = new Blockly.Connection(block, Blockly.INPUT_VALUE);
|
||||
var connection2 = new Blockly.Connection(block, Blockly.OUTPUT_VALUE);
|
||||
|
||||
assertReasonHelper(
|
||||
this.checker,
|
||||
connection1,
|
||||
connection2,
|
||||
Blockly.Connection.REASON_SELF_CONNECTION);
|
||||
});
|
||||
test('Different Workspaces', function() {
|
||||
var connection1 = new Blockly.Connection(
|
||||
{workspace: 1}, Blockly.INPUT_VALUE);
|
||||
var connection2 = new Blockly.Connection(
|
||||
{workspace: 2}, Blockly.OUTPUT_VALUE);
|
||||
|
||||
assertReasonHelper(
|
||||
this.checker,
|
||||
connection1,
|
||||
connection2,
|
||||
Blockly.Connection.REASON_DIFFERENT_WORKSPACES);
|
||||
});
|
||||
suite('Types', function() {
|
||||
setup(function() {
|
||||
// We have to declare each separately so that the connections belong
|
||||
// on different blocks.
|
||||
var prevBlock = { isShadow: function() {}};
|
||||
var nextBlock = { isShadow: function() {}};
|
||||
var outBlock = { isShadow: function() {}};
|
||||
var inBlock = { isShadow: function() {}};
|
||||
this.previous = new Blockly.Connection(
|
||||
prevBlock, Blockly.PREVIOUS_STATEMENT);
|
||||
this.next = new Blockly.Connection(
|
||||
nextBlock, Blockly.NEXT_STATEMENT);
|
||||
this.output = new Blockly.Connection(
|
||||
outBlock, Blockly.OUTPUT_VALUE);
|
||||
this.input = new Blockly.Connection(
|
||||
inBlock, Blockly.INPUT_VALUE);
|
||||
});
|
||||
test('Previous, Next', function() {
|
||||
assertReasonHelper(
|
||||
this.checker,
|
||||
this.previous,
|
||||
this.next,
|
||||
Blockly.Connection.CAN_CONNECT);
|
||||
});
|
||||
test('Previous, Output', function() {
|
||||
assertReasonHelper(
|
||||
this.checker,
|
||||
this.previous,
|
||||
this.output,
|
||||
Blockly.Connection.REASON_WRONG_TYPE);
|
||||
});
|
||||
test('Previous, Input', function() {
|
||||
assertReasonHelper(
|
||||
this.checker,
|
||||
this.previous,
|
||||
this.input,
|
||||
Blockly.Connection.REASON_WRONG_TYPE);
|
||||
});
|
||||
test('Next, Previous', function() {
|
||||
assertReasonHelper(
|
||||
this.checker,
|
||||
this.next,
|
||||
this.previous,
|
||||
Blockly.Connection.CAN_CONNECT);
|
||||
});
|
||||
test('Next, Output', function() {
|
||||
assertReasonHelper(
|
||||
this.checker,
|
||||
this.next,
|
||||
this.output,
|
||||
Blockly.Connection.REASON_WRONG_TYPE);
|
||||
});
|
||||
test('Next, Input', function() {
|
||||
assertReasonHelper(
|
||||
this.checker,
|
||||
this.next,
|
||||
this.input,
|
||||
Blockly.Connection.REASON_WRONG_TYPE);
|
||||
});
|
||||
test('Output, Previous', function() {
|
||||
assertReasonHelper(
|
||||
this.checker,
|
||||
this.previous,
|
||||
this.output,
|
||||
Blockly.Connection.REASON_WRONG_TYPE);
|
||||
});
|
||||
test('Output, Next', function() {
|
||||
assertReasonHelper(
|
||||
this.checker,
|
||||
this.output,
|
||||
this.next,
|
||||
Blockly.Connection.REASON_WRONG_TYPE);
|
||||
});
|
||||
test('Output, Input', function() {
|
||||
assertReasonHelper(
|
||||
this.checker,
|
||||
this.output,
|
||||
this.input,
|
||||
Blockly.Connection.CAN_CONNECT);
|
||||
});
|
||||
test('Input, Previous', function() {
|
||||
assertReasonHelper(
|
||||
this.checker,
|
||||
this.previous,
|
||||
this.input,
|
||||
Blockly.Connection.REASON_WRONG_TYPE);
|
||||
});
|
||||
test('Input, Next', function() {
|
||||
assertReasonHelper(
|
||||
this.checker,
|
||||
this.input,
|
||||
this.next,
|
||||
Blockly.Connection.REASON_WRONG_TYPE);
|
||||
});
|
||||
test('Input, Output', function() {
|
||||
assertReasonHelper(
|
||||
this.checker,
|
||||
this.input,
|
||||
this.output,
|
||||
Blockly.Connection.CAN_CONNECT);
|
||||
});
|
||||
});
|
||||
suite('Shadows', function() {
|
||||
test('Previous Shadow', function() {
|
||||
var prevBlock = { isShadow: function() { return true; }};
|
||||
var nextBlock = { isShadow: function() { return false; }};
|
||||
var prev = new Blockly.Connection(prevBlock, Blockly.PREVIOUS_STATEMENT);
|
||||
var next = new Blockly.Connection(nextBlock, Blockly.NEXT_STATEMENT);
|
||||
|
||||
assertReasonHelper(
|
||||
this.checker,
|
||||
prev,
|
||||
next,
|
||||
Blockly.Connection.CAN_CONNECT);
|
||||
});
|
||||
test('Next Shadow', function() {
|
||||
var prevBlock = { isShadow: function() { return false; }};
|
||||
var nextBlock = { isShadow: function() { return true; }};
|
||||
var prev = new Blockly.Connection(prevBlock, Blockly.PREVIOUS_STATEMENT);
|
||||
var next = new Blockly.Connection(nextBlock, Blockly.NEXT_STATEMENT);
|
||||
|
||||
assertReasonHelper(
|
||||
this.checker,
|
||||
prev,
|
||||
next,
|
||||
Blockly.Connection.REASON_SHADOW_PARENT);
|
||||
});
|
||||
test('Prev and Next Shadow', function() {
|
||||
var prevBlock = { isShadow: function() { return true; }};
|
||||
var nextBlock = { isShadow: function() { return true; }};
|
||||
var prev = new Blockly.Connection(prevBlock, Blockly.PREVIOUS_STATEMENT);
|
||||
var next = new Blockly.Connection(nextBlock, Blockly.NEXT_STATEMENT);
|
||||
|
||||
assertReasonHelper(
|
||||
this.checker,
|
||||
prev,
|
||||
next,
|
||||
Blockly.Connection.CAN_CONNECT);
|
||||
});
|
||||
test('Output Shadow', function() {
|
||||
var outBlock = { isShadow: function() { return true; }};
|
||||
var inBlock = { isShadow: function() { return false; }};
|
||||
var outCon = new Blockly.Connection(outBlock, Blockly.OUTPUT_VALUE);
|
||||
var inCon = new Blockly.Connection(inBlock, Blockly.INPUT_VALUE);
|
||||
|
||||
assertReasonHelper(
|
||||
this.checker,
|
||||
outCon,
|
||||
inCon,
|
||||
Blockly.Connection.CAN_CONNECT);
|
||||
});
|
||||
test('Input Shadow', function() {
|
||||
var outBlock = { isShadow: function() { return false; }};
|
||||
var inBlock = { isShadow: function() { return true; }};
|
||||
var outCon = new Blockly.Connection(outBlock, Blockly.OUTPUT_VALUE);
|
||||
var inCon = new Blockly.Connection(inBlock, Blockly.INPUT_VALUE);
|
||||
|
||||
assertReasonHelper(
|
||||
this.checker,
|
||||
outCon,
|
||||
inCon,
|
||||
Blockly.Connection.REASON_SHADOW_PARENT);
|
||||
});
|
||||
test('Output and Input Shadow', function() {
|
||||
var outBlock = { isShadow: function() { return true; }};
|
||||
var inBlock = { isShadow: function() { return true; }};
|
||||
var outCon = new Blockly.Connection(outBlock, Blockly.OUTPUT_VALUE);
|
||||
var inCon = new Blockly.Connection(inBlock, Blockly.INPUT_VALUE);
|
||||
|
||||
assertReasonHelper(
|
||||
this.checker,
|
||||
outCon,
|
||||
inCon,
|
||||
Blockly.Connection.CAN_CONNECT);
|
||||
});
|
||||
});
|
||||
});
|
||||
suite('Check Types', function() {
|
||||
setup(function() {
|
||||
this.con1 = new Blockly.Connection({}, Blockly.PREVIOUS_STATEMENT);
|
||||
this.con2 = new Blockly.Connection({}, Blockly.NEXT_STATEMENT);
|
||||
});
|
||||
function assertCheckTypes(checker, one, two) {
|
||||
chai.assert.isTrue(checker.doTypeChecks(one, two));
|
||||
// Order should not matter.
|
||||
chai.assert.isTrue(checker.doTypeChecks(one, two));
|
||||
}
|
||||
test('No Types', function() {
|
||||
assertCheckTypes(this.checker, this.con1, this.con2);
|
||||
});
|
||||
test('Same Type', function() {
|
||||
this.con1.setCheck('type1');
|
||||
this.con2.setCheck('type1');
|
||||
assertCheckTypes(this.checker, this.con1, this.con2);
|
||||
});
|
||||
test('Same Types', function() {
|
||||
this.con1.setCheck(['type1', 'type2']);
|
||||
this.con2.setCheck(['type1', 'type2']);
|
||||
assertCheckTypes(this.checker, this.con1, this.con2);
|
||||
});
|
||||
test('Single Same Type', function() {
|
||||
this.con1.setCheck(['type1', 'type2']);
|
||||
this.con2.setCheck(['type1', 'type3']);
|
||||
assertCheckTypes(this.checker, this.con1, this.con2);
|
||||
});
|
||||
test('One Typed, One Promiscuous', function() {
|
||||
this.con1.setCheck('type1');
|
||||
assertCheckTypes(this.checker, this.con1, this.con2);
|
||||
});
|
||||
test('No Compatible Types', function() {
|
||||
this.con1.setCheck('type1');
|
||||
this.con2.setCheck('type2');
|
||||
chai.assert.isFalse(this.checker.doTypeChecks(this.con1, this.con2));
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -4,261 +4,36 @@
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
suite('Connection type checker', function() {
|
||||
suite('Connection', function() {
|
||||
suiteSetup(function() {
|
||||
this.checker = new Blockly.ConnectionChecker();
|
||||
this.workspace = = {
|
||||
connectionChecker: new Blockly.ConnectionChecker()
|
||||
};
|
||||
this.createConnection = function(type) {
|
||||
var connection = new Blockly.Connection({workspace: this.workspace}, type);
|
||||
return connection;
|
||||
};
|
||||
});
|
||||
suite('Safety checks', function() {
|
||||
function assertReasonHelper(checker, one, two, reason) {
|
||||
chai.assert.equal(checker.canConnectWithReason(one, two), reason);
|
||||
// Order should not matter.
|
||||
chai.assert.equal(checker.canConnectWithReason(two, one), reason);
|
||||
}
|
||||
|
||||
test('Target Null', function() {
|
||||
var connection = new Blockly.Connection({}, Blockly.INPUT_VALUE);
|
||||
assertReasonHelper(
|
||||
this.checker,
|
||||
connection,
|
||||
null,
|
||||
Blockly.Connection.REASON_TARGET_NULL);
|
||||
});
|
||||
test('Target Self', function() {
|
||||
var block = {workspace: 1};
|
||||
var connection1 = new Blockly.Connection(block, Blockly.INPUT_VALUE);
|
||||
var connection2 = new Blockly.Connection(block, Blockly.OUTPUT_VALUE);
|
||||
|
||||
assertReasonHelper(
|
||||
this.checker,
|
||||
connection1,
|
||||
connection2,
|
||||
Blockly.Connection.REASON_SELF_CONNECTION);
|
||||
});
|
||||
test('Different Workspaces', function() {
|
||||
var connection1 = new Blockly.Connection(
|
||||
{workspace: 1}, Blockly.INPUT_VALUE);
|
||||
var connection2 = new Blockly.Connection(
|
||||
{workspace: 2}, Blockly.OUTPUT_VALUE);
|
||||
|
||||
assertReasonHelper(
|
||||
this.checker,
|
||||
connection1,
|
||||
connection2,
|
||||
Blockly.Connection.REASON_DIFFERENT_WORKSPACES);
|
||||
});
|
||||
suite('Types', function() {
|
||||
setup(function() {
|
||||
// We have to declare each separately so that the connections belong
|
||||
// on different blocks.
|
||||
var prevBlock = { isShadow: function() {}};
|
||||
var nextBlock = { isShadow: function() {}};
|
||||
var outBlock = { isShadow: function() {}};
|
||||
var inBlock = { isShadow: function() {}};
|
||||
this.previous = new Blockly.Connection(
|
||||
prevBlock, Blockly.PREVIOUS_STATEMENT);
|
||||
this.next = new Blockly.Connection(
|
||||
nextBlock, Blockly.NEXT_STATEMENT);
|
||||
this.output = new Blockly.Connection(
|
||||
outBlock, Blockly.OUTPUT_VALUE);
|
||||
this.input = new Blockly.Connection(
|
||||
inBlock, Blockly.INPUT_VALUE);
|
||||
});
|
||||
test('Previous, Next', function() {
|
||||
assertReasonHelper(
|
||||
this.checker,
|
||||
this.previous,
|
||||
this.next,
|
||||
Blockly.Connection.CAN_CONNECT);
|
||||
});
|
||||
test('Previous, Output', function() {
|
||||
assertReasonHelper(
|
||||
this.checker,
|
||||
this.previous,
|
||||
this.output,
|
||||
Blockly.Connection.REASON_WRONG_TYPE);
|
||||
});
|
||||
test('Previous, Input', function() {
|
||||
assertReasonHelper(
|
||||
this.checker,
|
||||
this.previous,
|
||||
this.input,
|
||||
Blockly.Connection.REASON_WRONG_TYPE);
|
||||
});
|
||||
test('Next, Previous', function() {
|
||||
assertReasonHelper(
|
||||
this.checker,
|
||||
this.next,
|
||||
this.previous,
|
||||
Blockly.Connection.CAN_CONNECT);
|
||||
});
|
||||
test('Next, Output', function() {
|
||||
assertReasonHelper(
|
||||
this.checker,
|
||||
this.next,
|
||||
this.output,
|
||||
Blockly.Connection.REASON_WRONG_TYPE);
|
||||
});
|
||||
test('Next, Input', function() {
|
||||
assertReasonHelper(
|
||||
this.checker,
|
||||
this.next,
|
||||
this.input,
|
||||
Blockly.Connection.REASON_WRONG_TYPE);
|
||||
});
|
||||
test('Output, Previous', function() {
|
||||
assertReasonHelper(
|
||||
this.checker,
|
||||
this.previous,
|
||||
this.output,
|
||||
Blockly.Connection.REASON_WRONG_TYPE);
|
||||
});
|
||||
test('Output, Next', function() {
|
||||
assertReasonHelper(
|
||||
this.checker,
|
||||
this.output,
|
||||
this.next,
|
||||
Blockly.Connection.REASON_WRONG_TYPE);
|
||||
});
|
||||
test('Output, Input', function() {
|
||||
assertReasonHelper(
|
||||
this.checker,
|
||||
this.output,
|
||||
this.input,
|
||||
Blockly.Connection.CAN_CONNECT);
|
||||
});
|
||||
test('Input, Previous', function() {
|
||||
assertReasonHelper(
|
||||
this.checker,
|
||||
this.previous,
|
||||
this.input,
|
||||
Blockly.Connection.REASON_WRONG_TYPE);
|
||||
});
|
||||
test('Input, Next', function() {
|
||||
assertReasonHelper(
|
||||
this.checker,
|
||||
this.input,
|
||||
this.next,
|
||||
Blockly.Connection.REASON_WRONG_TYPE);
|
||||
});
|
||||
test('Input, Output', function() {
|
||||
assertReasonHelper(
|
||||
this.checker,
|
||||
this.input,
|
||||
this.output,
|
||||
Blockly.Connection.CAN_CONNECT);
|
||||
});
|
||||
});
|
||||
suite('Shadows', function() {
|
||||
test('Previous Shadow', function() {
|
||||
var prevBlock = { isShadow: function() { return true; }};
|
||||
var nextBlock = { isShadow: function() { return false; }};
|
||||
var prev = new Blockly.Connection(prevBlock, Blockly.PREVIOUS_STATEMENT);
|
||||
var next = new Blockly.Connection(nextBlock, Blockly.NEXT_STATEMENT);
|
||||
|
||||
assertReasonHelper(
|
||||
this.checker,
|
||||
prev,
|
||||
next,
|
||||
Blockly.Connection.CAN_CONNECT);
|
||||
});
|
||||
test('Next Shadow', function() {
|
||||
var prevBlock = { isShadow: function() { return false; }};
|
||||
var nextBlock = { isShadow: function() { return true; }};
|
||||
var prev = new Blockly.Connection(prevBlock, Blockly.PREVIOUS_STATEMENT);
|
||||
var next = new Blockly.Connection(nextBlock, Blockly.NEXT_STATEMENT);
|
||||
|
||||
assertReasonHelper(
|
||||
this.checker,
|
||||
prev,
|
||||
next,
|
||||
Blockly.Connection.REASON_SHADOW_PARENT);
|
||||
});
|
||||
test('Prev and Next Shadow', function() {
|
||||
var prevBlock = { isShadow: function() { return true; }};
|
||||
var nextBlock = { isShadow: function() { return true; }};
|
||||
var prev = new Blockly.Connection(prevBlock, Blockly.PREVIOUS_STATEMENT);
|
||||
var next = new Blockly.Connection(nextBlock, Blockly.NEXT_STATEMENT);
|
||||
|
||||
assertReasonHelper(
|
||||
this.checker,
|
||||
prev,
|
||||
next,
|
||||
Blockly.Connection.CAN_CONNECT);
|
||||
});
|
||||
test('Output Shadow', function() {
|
||||
var outBlock = { isShadow: function() { return true; }};
|
||||
var inBlock = { isShadow: function() { return false; }};
|
||||
var outCon = new Blockly.Connection(outBlock, Blockly.OUTPUT_VALUE);
|
||||
var inCon = new Blockly.Connection(inBlock, Blockly.INPUT_VALUE);
|
||||
|
||||
assertReasonHelper(
|
||||
this.checker,
|
||||
outCon,
|
||||
inCon,
|
||||
Blockly.Connection.CAN_CONNECT);
|
||||
});
|
||||
test('Input Shadow', function() {
|
||||
var outBlock = { isShadow: function() { return false; }};
|
||||
var inBlock = { isShadow: function() { return true; }};
|
||||
var outCon = new Blockly.Connection(outBlock, Blockly.OUTPUT_VALUE);
|
||||
var inCon = new Blockly.Connection(inBlock, Blockly.INPUT_VALUE);
|
||||
|
||||
assertReasonHelper(
|
||||
this.checker,
|
||||
outCon,
|
||||
inCon,
|
||||
Blockly.Connection.REASON_SHADOW_PARENT);
|
||||
});
|
||||
test('Output and Input Shadow', function() {
|
||||
var outBlock = { isShadow: function() { return true; }};
|
||||
var inBlock = { isShadow: function() { return true; }};
|
||||
var outCon = new Blockly.Connection(outBlock, Blockly.OUTPUT_VALUE);
|
||||
var inCon = new Blockly.Connection(inBlock, Blockly.INPUT_VALUE);
|
||||
|
||||
assertReasonHelper(
|
||||
this.checker,
|
||||
outCon,
|
||||
inCon,
|
||||
Blockly.Connection.CAN_CONNECT);
|
||||
});
|
||||
});
|
||||
test('canConnectWithReason passes', function() {
|
||||
var conn1 = this.createConnection(Blockly.PREVIOUS_STATEMENT);
|
||||
var conn2 = this.createConnection(Blockly.NEXT_STATEMENT);
|
||||
chai.assert.equal(conn1.canConnectWithReason(conn2),
|
||||
Blockly.Connection.CAN_CONNECT);
|
||||
});
|
||||
suite('Check Types', function() {
|
||||
setup(function() {
|
||||
this.con1 = new Blockly.Connection({}, Blockly.PREVIOUS_STATEMENT);
|
||||
this.con2 = new Blockly.Connection({}, Blockly.NEXT_STATEMENT);
|
||||
});
|
||||
function assertCheckTypes(checker, one, two) {
|
||||
chai.assert.isTrue(checker.doTypeChecks(one, two));
|
||||
// Order should not matter.
|
||||
chai.assert.isTrue(checker.doTypeChecks(one, two));
|
||||
}
|
||||
test('No Types', function() {
|
||||
assertCheckTypes(this.checker, this.con1, this.con2);
|
||||
});
|
||||
test('Same Type', function() {
|
||||
this.con1.setCheck('type1');
|
||||
this.con2.setCheck('type1');
|
||||
assertCheckTypes(this.checker, this.con1, this.con2);
|
||||
});
|
||||
test('Same Types', function() {
|
||||
this.con1.setCheck(['type1', 'type2']);
|
||||
this.con2.setCheck(['type1', 'type2']);
|
||||
assertCheckTypes(this.checker, this.con1, this.con2);
|
||||
});
|
||||
test('Single Same Type', function() {
|
||||
this.con1.setCheck(['type1', 'type2']);
|
||||
this.con2.setCheck(['type1', 'type3']);
|
||||
assertCheckTypes(this.checker, this.con1, this.con2);
|
||||
});
|
||||
test('One Typed, One Promiscuous', function() {
|
||||
this.con1.setCheck('type1');
|
||||
assertCheckTypes(this.checker, this.con1, this.con2);
|
||||
});
|
||||
test('No Compatible Types', function() {
|
||||
this.con1.setCheck('type1');
|
||||
this.con2.setCheck('type2');
|
||||
chai.assert.isFalse(this.checker.doTypeChecks(this.con1, this.con2));
|
||||
});
|
||||
test('canConnectWithReason fails', function() {
|
||||
var conn1 = this.createConnection(Blockly.PREVIOUS_STATEMENT);
|
||||
var conn2 = this.createConnection(Blockly.OUTPUT_VALUE);
|
||||
chai.assert.equal(conn1.canConnectWithReason(conn2),
|
||||
Blockly.Connection.REASON_WRONG_TYPE);
|
||||
});
|
||||
test('checkConnection passes', function() {
|
||||
var conn1 = this.createConnection(Blockly.PREVIOUS_STATEMENT);
|
||||
var conn2 = this.createConnection(Blockly.NEXT_STATEMENT);
|
||||
chai.assert.doesNotThrow(conn1.checkConnection(conn2));
|
||||
});
|
||||
test('checkConnection fails', function() {
|
||||
var conn1 = this.createConnection(Blockly.PREVIOUS_STATEMENT);
|
||||
var conn2 = this.createConnection(Blockly.OUTPUT_VALUE);
|
||||
chai.assert.throws(conn1.checkConnection(conn2));
|
||||
});
|
||||
});
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
<script src="block_test.js"></script>
|
||||
<script src="comment_test.js"></script>
|
||||
<script src="connection_db_test.js"></script>
|
||||
<script src="connection_checker_test.js"></script>
|
||||
<script src="connection_test.js"></script>
|
||||
<script src="cursor_test.js"></script>
|
||||
<script src="dropdowndiv_test.js"></script>
|
||||
|
||||
Reference in New Issue
Block a user