diff --git a/tests/mocha/field_checkbox_test.js b/tests/mocha/field_checkbox_test.js index ba3760e2b..f05be9099 100644 --- a/tests/mocha/field_checkbox_test.js +++ b/tests/mocha/field_checkbox_test.js @@ -30,10 +30,14 @@ suite('Checkbox Fields', function() { * @type {!Array} */ var validValueTestCases = [ - {title: 'Boolean true', value: true, expectedValue: 'TRUE'}, - {title: 'Boolean false', value: false, expectedValue: 'FALSE'}, - {title: 'String TRUE', value: 'TRUE', expectedValue: 'TRUE'}, - {title: 'String FALSE', value: 'FALSE', expectedValue: 'FALSE'}, + {title: 'Boolean true', value: true, expectedValue: 'TRUE', + expectedText: 'true'}, + {title: 'Boolean false', value: false, expectedValue: 'FALSE', + expectedText: 'false'}, + {title: 'String TRUE', value: 'TRUE', expectedValue: 'TRUE', + expectedText: 'true'}, + {title: 'String FALSE', value: 'FALSE', expectedValue: 'FALSE', + expectedText: 'false'}, ]; var addArgsAndJson = function(testCase) { testCase.args = [testCase.value]; @@ -72,54 +76,21 @@ suite('Checkbox Fields', function() { testHelpers.runFromJsonSuiteTests( Blockly.FieldCheckbox, validValueTestCases,invalidValueTestCases, validTestCaseAssertField, assertFieldDefault); - + suite('setValue', function() { suite('True -> New Value', function() { setup(function() { - this.checkboxField = new Blockly.FieldCheckbox('TRUE'); - }); - test('Null', function() { - this.checkboxField.setValue(null); - testHelpers.assertFieldValue(this.checkboxField, 'TRUE', 'true'); - }); - test('Undefined', function() { - this.checkboxField.setValue(undefined); - testHelpers.assertFieldValue(this.checkboxField, 'TRUE', 'true'); - }); - test('Non-Parsable String', function() { - this.checkboxField.setValue('bad'); - testHelpers.assertFieldValue(this.checkboxField, 'TRUE', 'true'); - }); - test('False', function() { - this.checkboxField.setValue('FALSE'); - testHelpers.assertFieldValue(this.checkboxField, 'FALSE', 'false'); - }); - test('With source block', function() { - this.checkboxField.setSourceBlock(createTestBlock()); - this.checkboxField.setValue('FALSE'); - testHelpers.assertFieldValue(this.checkboxField, 'FALSE', 'false'); + this.field = new Blockly.FieldCheckbox('TRUE'); }); + testHelpers.runSetValueTests( + validValueTestCases, invalidValueTestCases, 'TRUE', 'true'); }); suite('False -> New Value', function() { setup(function() { - this.checkboxField = new Blockly.FieldCheckbox('FALSE'); - }); - test('Null', function() { - this.checkboxField.setValue(null); - testHelpers.assertFieldValue(this.checkboxField, 'FALSE', 'false'); - }); - test('Undefined', function() { - this.checkboxField.setValue(undefined); - testHelpers.assertFieldValue(this.checkboxField, 'FALSE', 'false'); - }); - test('Non-Parsable String', function() { - this.checkboxField.setValue('bad'); - testHelpers.assertFieldValue(this.checkboxField, 'FALSE', 'false'); - }); - test('True', function() { - this.checkboxField.setValue('TRUE'); - testHelpers.assertFieldValue(this.checkboxField, 'TRUE', 'true'); + this.field = new Blockly.FieldCheckbox('FALSE'); }); + testHelpers.runSetValueTests( + validValueTestCases, invalidValueTestCases, 'FALSE', 'false'); }); }); suite('Validators', function() { diff --git a/tests/mocha/field_colour_test.js b/tests/mocha/field_colour_test.js index 90f566b1d..21bbf6979 100644 --- a/tests/mocha/field_colour_test.js +++ b/tests/mocha/field_colour_test.js @@ -105,81 +105,27 @@ suite('Colour Fields', function() { suite('setValue', function() { suite('Empty -> New Value', function() { setup(function() { - this.colourField = new Blockly.FieldColour(); - }); - test('Null', function() { - this.colourField.setValue(null); - assertFieldDefault(this.colourField); - }); - test('Undefined', function() { - this.colourField.setValue(undefined); - assertFieldDefault(this.colourField); - }); - test('Non-Parsable String', function() { - this.colourField.setValue('not_a_colour'); - assertFieldDefault(this.colourField); - }); - test('#000000', function() { - this.colourField.setValue('#000000'); - testHelpers.assertFieldValue(this.colourField, '#000000', '#000'); - }); - test('#bcbcbc', function() { - this.colourField.setValue('#bcbcbc'); - testHelpers.assertFieldValue(this.colourField, '#bcbcbc', '#bcbcbc'); - }); - test('#aa0', function() { - this.colourField.setValue('#aa0'); - testHelpers.assertFieldValue(this.colourField, '#aaaa00', '#aa0'); - }); - test('rgb(170, 170, 0)', function() { - this.colourField.setValue('rgb(170, 170, 0)'); - testHelpers.assertFieldValue(this.colourField, '#aaaa00', '#aa0'); - }); - test('red', function() { - this.colourField.setValue('red'); - testHelpers.assertFieldValue(this.colourField, '#ff0000', '#f00'); + this.field = new Blockly.FieldColour(); }); + testHelpers.runSetValueTests( + validValueTestCases, invalidValueTestCases, defaultFieldValue, + defaultTextValue); test('With source block', function() { - this.colourField.setSourceBlock(createTestBlock()); - this.colourField.setValue('#bcbcbc'); - testHelpers.assertFieldValue(this.colourField, '#bcbcbc', '#bcbcbc'); + this.field.setSourceBlock(createTestBlock()); + this.field.setValue('#bcbcbc'); + testHelpers.assertFieldValue(this.field, '#bcbcbc', '#bcbcbc'); }); }); suite('Value -> New Value', function() { setup(function() { - this.colourField = new Blockly.FieldColour('#aaaaaa'); + this.field = new Blockly.FieldColour('#aaaaaa'); }); - test('Null', function() { - this.colourField.setValue(null); - testHelpers.assertFieldValue(this.colourField, '#aaaaaa', '#aaa'); - }); - test('Undefined', function() { - this.colourField.setValue(undefined); - testHelpers.assertFieldValue(this.colourField, '#aaaaaa', '#aaa'); - }); - test('Non-Parsable String', function() { - this.colourField.setValue('not_a_colour'); - testHelpers.assertFieldValue(this.colourField, '#aaaaaa', '#aaa'); - }); - test('#000000', function() { - this.colourField.setValue('#000000'); - testHelpers.assertFieldValue(this.colourField, '#000000', '#000'); - }); - test('#bcbcbc', function() { - this.colourField.setValue('#bcbcbc'); - testHelpers.assertFieldValue(this.colourField, '#bcbcbc', '#bcbcbc'); - }); - test('#aa0', function() { - this.colourField.setValue('#aa0'); - testHelpers.assertFieldValue(this.colourField, '#aaaa00', '#aa0'); - }); - test('rgb(170, 170, 0)', function() { - this.colourField.setValue('rgb(170, 170, 0)'); - testHelpers.assertFieldValue(this.colourField, '#aaaa00', '#aa0'); - }); - test('red', function() { - this.colourField.setValue('red'); - testHelpers.assertFieldValue(this.colourField, '#ff0000', '#f00'); + testHelpers.runSetValueTests( + validValueTestCases, invalidValueTestCases, '#aaaaaa', '#aaa'); + test('With source block', function() { + this.field.setSourceBlock(createTestBlock()); + this.field.setValue('#bcbcbc'); + testHelpers.assertFieldValue(this.field, '#bcbcbc', '#bcbcbc'); }); }); });