From 9ed9dd2f08b3109891e676d702185b90ed51e728 Mon Sep 17 00:00:00 2001 From: Rachel Fenichel Date: Tue, 27 Nov 2018 13:48:23 -0800 Subject: [PATCH] Add tests --- tests/jsunit/variables_test.js | 53 ++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/tests/jsunit/variables_test.js b/tests/jsunit/variables_test.js index b6b305bdc..17ccb5747 100644 --- a/tests/jsunit/variables_test.js +++ b/tests/jsunit/variables_test.js @@ -97,3 +97,56 @@ var test_allUsedVarModels_allUnused = buildVariablesTest( 0, result.length); } ); + +var test_getVariable_byId = buildVariablesTest( + function(workspace) { + var var_1 = workspace.createVariable('name1', 'type1', 'id1'); + var var_2 = workspace.createVariable('name2', 'type1', 'id2'); + var var_3 = workspace.createVariable('name3', 'type2', 'id3'); + var result_1 = Blockly.Variables.getVariable(workspace, 'id1'); + var result_2 = Blockly.Variables.getVariable(workspace, 'id2'); + var result_3 = Blockly.Variables.getVariable(workspace, 'id3'); + + assertEquals(var_1, result_1); + assertEquals(var_2, result_2); + assertEquals(var_3, result_3); + } +); + +var test_getVariable_byNameAndType = buildVariablesTest( + function(workspace) { + var var_1 = workspace.createVariable('name1', 'type1', 'id1'); + var var_2 = workspace.createVariable('name2', 'type1', 'id2'); + var var_3 = workspace.createVariable('name3', 'type2', 'id3'); + var result_1 = + Blockly.Variables.getVariable(workspace, null, 'name1', 'type1'); + var result_2 = + Blockly.Variables.getVariable(workspace, null, 'name2', 'type1'); + var result_3 = + Blockly.Variables.getVariable(workspace, null, 'name3', 'type2'); + + // Searching by name + type is correct. + assertEquals(var_1, result_1); + assertEquals(var_2, result_2); + assertEquals(var_3, result_3); + } +); + +var test_getVariable_byIdThenName = buildVariablesTest( + function(workspace) { + var var_1 = workspace.createVariable('name1', 'type1', 'id1'); + var var_2 = workspace.createVariable('name2', 'type1', 'id2'); + var var_3 = workspace.createVariable('name3', 'type2', 'id3'); + var result_1 = + Blockly.Variables.getVariable(workspace, 'badId', 'name1', 'type1'); + var result_2 = + Blockly.Variables.getVariable(workspace, 'badId', 'name2', 'type1'); + var result_3 = + Blockly.Variables.getVariable(workspace, 'badId', 'name3', 'type2'); + + // Searching by ID failed, but falling back onto name + type is correct. + assertEquals(var_1, result_1); + assertEquals(var_2, result_2); + assertEquals(var_3, result_3); + } +);