// Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License. See License.txt in the project root for license information. //----------------------------------------------------------------------------- // // Abstract: // // Option test cases for the Rating JavaScript control. Note that a large // percent of the verifications in this file (such as verifying all options // are actually set when passed to options) come as part of ratingUtils.setOptionsAndVerify // // Author: sehume // //----------------------------------------------------------------------------- // // /// /// module WinJSTests { "use strict"; export class OptionTests { setUp(complete) { RatingUtils.setUp().then(complete); } tearDown() { RatingUtils.cleanUp(); } //----------------------------------------------------------------------------------- // maxRating Tests //----------------------------------------------------------------------------------- testRating_Options_MaxRating_Default = function () { RatingUtils.instantiate("rating"); // try changing maxRating after instantiation RatingUtils.setOptionsAndVerify("rating", { maxRating: RatingUtils.randomNewMaxRating(50, RatingUtils.defaultMaxRating) }); // Set userRating to a value between 1 and maxRating RatingUtils.setOptionsAndVerify("rating", { userRating: RatingUtils.randomInt(1, RatingUtils.defaultMaxRating) }); // Try to set userRating to a value greater than maxRating, expecting coercion RatingUtils.setOptionsAndVerify("rating", { userRating: RatingUtils.randomInt(RatingUtils.defaultMaxRating + 1, RatingUtils.defaultMaxRating + 10) }); // Try to set averageRating to a value between 1 and maxRating RatingUtils.setOptionsAndVerify("rating", { averageRating: RatingUtils.random(1, RatingUtils.defaultMaxRating) }); // Try to set averageRating to a value greater than maxRating, expecting coercion RatingUtils.setOptionsAndVerify("rating", { averageRating: RatingUtils.random(RatingUtils.defaultMaxRating + 0.1, RatingUtils.defaultMaxRating + 10) }); }; //----------------------------------------------------------------------------------- testRating_Options_MaxRating_Random = function () { for (var i = 1; i < 8; ++i) { var max = i + RatingUtils.randomNewMaxRating(Math.pow(2, i), RatingUtils.defaultMaxRating); RatingUtils.instantiate("rating", { maxRating: max }); // Try changing maxRating after instantiation, expecting coercion RatingUtils.setOptionsAndVerify("rating", { maxRating: RatingUtils.randomNewMaxRating(50, max) }); // Set userRating to a value between 1 and maxRating RatingUtils.setOptionsAndVerify("rating", { userRating: RatingUtils.randomInt(1, max) }); // Try to set userRating to a value greater than max, expecting coercion RatingUtils.setOptionsAndVerify("rating", { userRating: RatingUtils.randomInt(max + 1, max + 20) }); // Try to set averageRating to a value between 1 and maxRating RatingUtils.setOptionsAndVerify("rating", { averageRating: RatingUtils.random(1, max) }); // Try to set averageRating to a value greater than maxRating, expecting coercion RatingUtils.setOptionsAndVerify("rating", { averageRating: RatingUtils.random(max + 1, max + 20) }); RatingUtils.removeElementById("rating"); RatingUtils.addTag("div", "rating"); } }; //----------------------------------------------------------------------------------- testRating_Options_MaxRating_Invalid_0 = function () { RatingUtils.instantiate("rating"); RatingUtils.setOptionsAndVerify("rating", { maxRating: 0 }); }; //----------------------------------------------------------------------------------- testRating_Options_MaxRating_Invalid_Null = function () { RatingUtils.instantiate("rating"); RatingUtils.setOptionsAndVerify("rating", { maxRating: null }); }; //----------------------------------------------------------------------------------- testRating_Options_MaxRating_Invalid_Undefined = function () { RatingUtils.instantiate("rating"); RatingUtils.setOptionsAndVerify("rating", { maxRating: undefined }); }; //----------------------------------------------------------------------------------- testRating_Options_MaxRating_Invalid_Negatives = function () { for (var i = 0; i < 10; ++i) { RatingUtils.instantiate("rating"); RatingUtils.setOptionsAndVerify("rating", { maxRating: RatingUtils.randomInt(-50, -1) }); RatingUtils.removeElementById("rating"); RatingUtils.addTag("div", "rating"); } }; //----------------------------------------------------------------------------------- testRating_Options_MaxRating_Invalid_NumbersAsStrings = function () { for (var i = 0; i < 10; ++i) { RatingUtils.instantiate("rating"); RatingUtils.setOptionsAndVerify("rating", { maxRating: RatingUtils.randomInt(1, 50).toString() }); RatingUtils.removeElementById("rating"); RatingUtils.addTag("div", "rating"); } }; //----------------------------------------------------------------------------------- testRating_Options_MaxRating_Invalid_Nonsense = function () { for (var i = 0; i < 10; ++i) { RatingUtils.instantiate("rating"); RatingUtils.setOptionsAndVerify("rating", { maxRating: RatingUtils.randomString(35) }); RatingUtils.removeElementById("rating"); RatingUtils.addTag("div", "rating"); } }; //----------------------------------------------------------------------------------- // averageRating Tests //----------------------------------------------------------------------------------- testRating_Options_AverageRating_Integer_Default = function () { RatingUtils.instantiate("rating", { averageRating: 3 }); RatingUtils.setOptionsAndVerify("rating", { averageRating: RatingUtils.randomInt(1, RatingUtils.defaultMaxRating) }); }; //----------------------------------------------------------------------------------- testRating_Options_AverageRating_Integer_CustomMax = function () { for (var i = 0; i < 10; ++i) { var newMax = RatingUtils.randomNewMaxRating(50, RatingUtils.defaultMaxRating); RatingUtils.instantiate("rating", { maxRating: newMax, averageRating: RatingUtils.randomInt(1, newMax) }); RatingUtils.setOptionsAndVerify("rating", { averageRating: RatingUtils.random(1, newMax) }); RatingUtils.removeElementById("rating"); RatingUtils.addTag("div", "rating"); } }; //----------------------------------------------------------------------------------- testRating_Options_AverageRating_Float_Default = function () { RatingUtils.instantiate("rating", { averageRating: RatingUtils.random(1, RatingUtils.defaultMaxRating) }); RatingUtils.setOptionsAndVerify("rating", { averageRating: RatingUtils.random(1, RatingUtils.defaultMaxRating) }); }; //----------------------------------------------------------------------------------- testRating_Options_AverageRating_Floats_CustomMax = function () { for (var i = 0; i < 10; ++i) { var newMax = RatingUtils.randomNewMaxRating(50, RatingUtils.defaultMaxRating); RatingUtils.instantiate("rating", { maxRating: newMax, averageRating: RatingUtils.random(1, newMax) }); RatingUtils.setOptionsAndVerify("rating", { averageRating: RatingUtils.random(1, newMax) }); RatingUtils.removeElementById("rating"); RatingUtils.addTag("div", "rating"); } }; //----------------------------------------------------------------------------------- testRating_Options_AverageRating_DefaultMax = function () { RatingUtils.instantiate("rating", { averageRating: RatingUtils.defaultMaxRating }); }; //----------------------------------------------------------------------------------- testRating_Options_AverageRating_CustomMax = function () { var newMax = RatingUtils.randomNewMaxRating(50, RatingUtils.defaultMaxRating); RatingUtils.instantiate("rating", { maxRating: newMax }); RatingUtils.setOptionsAndVerify("rating", { averageRating: newMax }); }; //----------------------------------------------------------------------------------- testRating_Options_AverageRating_0 = function () { RatingUtils.instantiate("rating", { averageRating: 3 }); RatingUtils.setOptionsAndVerify("rating", { averageRating: 0 }); }; //----------------------------------------------------------------------------------- testRating_Options_AverageRating_Invalid_Null = function () { RatingUtils.instantiate("rating", { averageRating: 3 }); RatingUtils.setOptionsAndVerify("rating", { averageRating: null }); }; //----------------------------------------------------------------------------------- testRating_Options_AverageRating_Invalid_GreaterThanDefaultMax = function () { RatingUtils.instantiate("rating"); RatingUtils.setOptionsAndVerify("rating", { averageRating: RatingUtils.random(RatingUtils.defaultMaxRating + 1, RatingUtils.defaultMaxRating * 2) }); }; //----------------------------------------------------------------------------------- testRating_Options_AverageRating_Invalid_GreaterThanCustomMax = function () { var newMax = RatingUtils.randomNewMaxRating(50, RatingUtils.defaultMaxRating); RatingUtils.instantiate("rating", { maxRating: newMax }); RatingUtils.setOptionsAndVerify("rating", { averageRating: RatingUtils.random(newMax + 1, newMax * 2) }); }; //----------------------------------------------------------------------------------- testRating_Options_AverageRating_Invalid_Undefined = function () { RatingUtils.instantiate("rating"); RatingUtils.setOptionsAndVerify("rating", { averageRating: undefined }); }; //----------------------------------------------------------------------------------- testRating_Options_AverageRating_Invalid_Negatives = function () { for (var i = 0; i < 10; ++i) { RatingUtils.instantiate("rating"); RatingUtils.setOptionsAndVerify("rating", { averageRating: RatingUtils.random(-50, -0.01) }); RatingUtils.removeElementById("rating"); RatingUtils.addTag("div", "rating"); } }; //----------------------------------------------------------------------------------- testRating_Options_AverageRating_Invalid_NumbersAsStrings = function () { for (var i = 0; i < 10; ++i) { RatingUtils.instantiate("rating"); RatingUtils.setOptionsAndVerify("rating", { averageRating: RatingUtils.random(1, RatingUtils.defaultMaxRating).toString() }); RatingUtils.removeElementById("rating"); RatingUtils.addTag("div", "rating"); } }; //----------------------------------------------------------------------------------- testRating_Options_AverageRating_Invalid_Nonsense = function () { for (var i = 0; i < 10; ++i) { RatingUtils.instantiate("rating"); RatingUtils.setOptionsAndVerify("rating", { averageRating: RatingUtils.randomString(35) }); RatingUtils.removeElementById("rating"); RatingUtils.addTag("div", "rating"); } }; //----------------------------------------------------------------------------------- // userRating tests //----------------------------------------------------------------------------------- testRating_Options_UserRating_Default = function () { RatingUtils.instantiate("rating", { userRating: 3 }); RatingUtils.setOptionsAndVerify("rating", { userRating: 2 }); }; //----------------------------------------------------------------------------------- testRating_Options_UserRating_CustomMax = function () { for (var i = 0; i < 10; ++i) { var newMax = RatingUtils.randomNewMaxRating(50, RatingUtils.defaultMaxRating); RatingUtils.instantiate("rating", { maxRating: newMax, userRating: RatingUtils.randomInt(1, newMax) }); RatingUtils.setOptionsAndVerify("rating", { userRating: RatingUtils.randomInt(1, newMax) }); RatingUtils.removeElementById("rating"); RatingUtils.addTag("div", "rating"); } }; //----------------------------------------------------------------------------------- testRating_Options_UserRating_DefaultMax = function () { RatingUtils.instantiate("rating"); RatingUtils.setOptionsAndVerify("rating", { userRating: RatingUtils.defaultMaxRating }); }; //----------------------------------------------------------------------------------- testRating_Options_UserRating_0 = function () { RatingUtils.instantiate("rating", { userRating: 3 }); RatingUtils.setOptionsAndVerify("rating", { userRating: 0 }); }; //----------------------------------------------------------------------------------- testRating_Options_UserRating_Invalid_Null = function () { RatingUtils.instantiate("rating"); RatingUtils.setOptionsAndVerify("rating", { userRating: 2 }); RatingUtils.setOptionsAndVerify("rating", { userRating: null }); RatingUtils.setOptionsAndVerify("rating", { userRating: RatingUtils.defaultMaxRating - 1 }); RatingUtils.setOptionsAndVerify("rating", { userRating: null }); }; //----------------------------------------------------------------------------------- testRating_Options_UserRating_Invalid_GreaterThanDefaultMax = function () { RatingUtils.instantiate("rating"); RatingUtils.setOptionsAndVerify("rating", { userRating: RatingUtils.randomInt(RatingUtils.defaultMaxRating + 1, RatingUtils.defaultMaxRating * 2) }); }; //----------------------------------------------------------------------------------- testRating_Options_UserRating_Invalid_GreaterThanCustomMax = function () { var newMax = RatingUtils.randomNewMaxRating(50, RatingUtils.defaultMaxRating); RatingUtils.instantiate("rating", { maxRating: newMax }); RatingUtils.setOptionsAndVerify("rating", { userRating: RatingUtils.randomInt(newMax + 1, newMax * 2) }); }; //----------------------------------------------------------------------------------- testRating_Options_UserRating_Invalid_Float_Default = function () { RatingUtils.instantiate("rating"); RatingUtils.setOptionsAndVerify("rating", { userRating: RatingUtils.randomInt(1, RatingUtils.defaultMaxRating) }); }; //----------------------------------------------------------------------------------- testRating_Options_UserRating_Invalid_Floats_CustomMax = function () { for (var i = 0; i < 10; ++i) { var newMax = RatingUtils.randomNewMaxRating(50, RatingUtils.defaultMaxRating); RatingUtils.instantiate("rating"); RatingUtils.setOptionsAndVerify("rating", { userRating: RatingUtils.randomInt(1, newMax) }); RatingUtils.removeElementById("rating"); RatingUtils.addTag("div", "rating"); } }; //----------------------------------------------------------------------------------- testRating_Options_UserRating_Invalid_Undefined = function () { RatingUtils.instantiate("rating"); RatingUtils.setOptionsAndVerify("rating", { userRating: undefined }); }; //----------------------------------------------------------------------------------- testRating_Options_UserRating_Invalid_Negatives = function () { for (var i = 0; i < 10; ++i) { RatingUtils.instantiate("rating"); RatingUtils.setOptionsAndVerify("rating", { userRating: RatingUtils.randomInt(-50, -1) }); RatingUtils.removeElementById("rating"); RatingUtils.addTag("div", "rating"); } }; //----------------------------------------------------------------------------------- testRating_Options_UserRating_Invalid_NumbersAsStrings = function () { for (var i = 0; i < 10; ++i) { RatingUtils.instantiate("rating"); RatingUtils.setOptionsAndVerify("rating", { userRating: RatingUtils.randomInt(1, RatingUtils.defaultMaxRating).toString() }); RatingUtils.removeElementById("rating"); RatingUtils.addTag("div", "rating"); } }; //----------------------------------------------------------------------------------- testRating_Options_UserRating_Invalid_Nonsense = function () { for (var i = 0; i < 10; ++i) { RatingUtils.instantiate("rating"); RatingUtils.setOptionsAndVerify("rating", { userRating: RatingUtils.randomString(35) }); RatingUtils.removeElementById("rating"); RatingUtils.addTag("div", "rating"); } }; //----------------------------------------------------------------------------------- // disabled tests //----------------------------------------------------------------------------------- testRating_Options_disabled_true = function () { RatingUtils.instantiate("rating", { disabled: true }); // Should still be able to set options to whatever we want as disabled only affects user input RatingUtils.setOptionsAndVerify("rating", { userRating: 4 }); RatingUtils.setOptionsAndVerify("rating", { averageRating: 1 }); RatingUtils.setOptionsAndVerify("rating", { disabled: false }); RatingUtils.setOptionsAndVerify("rating", { userRating: 0 }); RatingUtils.setOptionsAndVerify("rating", { averageRating: 2 }); }; //----------------------------------------------------------------------------------- testRating_Options_disabled_false = function () { RatingUtils.instantiate("rating", { disabled: false }); // Should still be able to set options to whatever we want as disabled only affects user input RatingUtils.setOptionsAndVerify("rating", { userRating: 4 }); RatingUtils.setOptionsAndVerify("rating", { averageRating: 1 }); RatingUtils.setOptionsAndVerify("rating", { disabled: true }); RatingUtils.setOptionsAndVerify("rating", { userRating: 0 }); RatingUtils.setOptionsAndVerify("rating", { averageRating: 2 }); }; //----------------------------------------------------------------------------------- testRating_Options_disabled_Invalid_Numbers = function () { RatingUtils.instantiate("rating"); RatingUtils.setOptionsAndVerify("rating", { disabled: 1 }); RatingUtils.setOptionsAndVerify("rating", { disabled: 0 }); }; //----------------------------------------------------------------------------------- testRating_Options_disabled_Invalid_Strings = function () { RatingUtils.instantiate("rating"); RatingUtils.setOptionsAndVerify("rating", { disabled: "true" }); RatingUtils.setOptionsAndVerify("rating", { disabled: "false" }); }; //----------------------------------------------------------------------------------- testRating_Options_disabled_Invalid_Nonsense = function () { for (var i = 0; i < 10; ++i) { RatingUtils.instantiate("rating", { disabled: true }); RatingUtils.setOptionsAndVerify("rating", { disabled: RatingUtils.randomString(35) }); RatingUtils.removeElementById("rating"); RatingUtils.addTag("div", "rating"); } }; //----------------------------------------------------------------------------------- // enableClear tests //----------------------------------------------------------------------------------- testRating_Options_enableClear_true = function () { RatingUtils.instantiate("rating", { enableClear: true }); // Should still be able to set options to whatever we want as enableClear only affects user input RatingUtils.setOptionsAndVerify("rating", { userRating: 4 }); RatingUtils.setOptionsAndVerify("rating", { averageRating: 1 }); RatingUtils.setOptionsAndVerify("rating", { userRating: 0 }); RatingUtils.setOptionsAndVerify("rating", { enableClear: false }); RatingUtils.setOptionsAndVerify("rating", { userRating: 4 }); RatingUtils.setOptionsAndVerify("rating", { averageRating: 1 }); RatingUtils.setOptionsAndVerify("rating", { userRating: 0 }); }; //----------------------------------------------------------------------------------- testRating_Options_enableClear_false = function () { RatingUtils.instantiate("rating", { enableClear: false }); // Should still be able to set options to whatever we want as enableClear only affects user input RatingUtils.setOptionsAndVerify("rating", { userRating: 4 }); RatingUtils.setOptionsAndVerify("rating", { averageRating: 1 }); RatingUtils.setOptionsAndVerify("rating", { userRating: 0 }); RatingUtils.setOptionsAndVerify("rating", { enableClear: true }); RatingUtils.setOptionsAndVerify("rating", { userRating: 4 }); RatingUtils.setOptionsAndVerify("rating", { averageRating: 1 }); RatingUtils.setOptionsAndVerify("rating", { userRating: 0 }); }; //----------------------------------------------------------------------------------- testRating_Options_enableClear_Invalid_Numbers = function () { RatingUtils.instantiate("rating"); RatingUtils.setOptionsAndVerify("rating", { enableClear: 1 }); RatingUtils.setOptionsAndVerify("rating", { enableClear: 0 }); }; //----------------------------------------------------------------------------------- testRating_Options_enableClear_Invalid_Strings = function () { RatingUtils.instantiate("rating"); RatingUtils.setOptionsAndVerify("rating", { enableClear: "true" }); RatingUtils.setOptionsAndVerify("rating", { enableClear: "false" }); }; //----------------------------------------------------------------------------------- testRating_Options_enableClear_Invalid_Nonsense = function () { for (var i = 0; i < 10; ++i) { RatingUtils.instantiate("rating", { enableClear: true }); RatingUtils.setOptionsAndVerify("rating", { enableClear: RatingUtils.randomString(35) }); RatingUtils.removeElementById("rating"); RatingUtils.addTag("div", "rating"); } }; //----------------------------------------------------------------------------------- // tooltipStrings tests //----------------------------------------------------------------------------------- testRating_Options_tooltipStrings_PlainText_DefaultMax = function () { var tooltipStrings = [ "I hated it!", "I didn't like it.", "It was Okay", "I liked it.", "I loved it!" ]; RatingUtils.instantiate("rating"); RatingUtils.setOptionsAndVerify("rating", { tooltipStrings: tooltipStrings }); }; //----------------------------------------------------------------------------------- testRating_Options_tooltipStrings_PlainText_DefaultMax_UpdateIndividually = function () { var tooltipStrings = [ "I hated it!", "I didn't like it.", "It was Okay", "I liked it.", "I loved it!" ]; var rating = RatingUtils.instantiate("rating"); for (var i = 0; i < rating.maxRating; ++i) { try { rating.tooltipStrings[i] = tooltipStrings[i]; } catch (e) { LiveUnit.Assert.fail("Setting tooltip " + i + " to \"" + tooltipStrings[i] + "\" threw exception: " + e.Message); } RatingUtils.setOptionsAndVerify("rating"); // Use verification in setOptionsAndVerify to verify we didn't break anything } }; //----------------------------------------------------------------------------------- testRating_Options_tooltipStrings_PlainText_CustomMax = function () { for (var i = 0; i < 10; ++i) { var newMax = RatingUtils.randomNewMaxRating(25, RatingUtils.defaultMaxRating); var tooltipStrings = new Array(); for (var j = 0; j < newMax; ++j) { tooltipStrings[j] = RatingUtils.randomString(25); } RatingUtils.instantiate("rating", { maxRating: newMax }); RatingUtils.setOptionsAndVerify("rating", { tooltipStrings: tooltipStrings }); RatingUtils.removeElementById("rating"); RatingUtils.addTag("div", "rating"); } }; //----------------------------------------------------------------------------------- testRating_Options_tooltipStrings_HTML_DefaultMax = function () { var tooltipStrings = [ RatingUtils.randomHTML(RatingUtils.randomInt(1, 10), true), RatingUtils.randomHTML(RatingUtils.randomInt(1, 10), true), RatingUtils.randomHTML(RatingUtils.randomInt(1, 10), true), RatingUtils.randomHTML(RatingUtils.randomInt(1, 10), true), RatingUtils.randomHTML(RatingUtils.randomInt(1, 10), true) ]; RatingUtils.instantiate("rating"); RatingUtils.setOptionsAndVerify("rating", { tooltipStrings: tooltipStrings }); }; //----------------------------------------------------------------------------------- testRating_Options_tooltipStrings_HTML_CustomMax = function () { for (var i = 0; i < 5; ++i) { var newMax = RatingUtils.randomNewMaxRating(25, RatingUtils.defaultMaxRating); var tooltipStrings = new Array(); for (var j = 0; j < newMax; ++j) { tooltipStrings[j] = RatingUtils.randomHTML(RatingUtils.randomInt(1, 5), true); } RatingUtils.instantiate("rating", { maxRating: newMax }); RatingUtils.setOptionsAndVerify("rating", { tooltipStrings: tooltipStrings }); RatingUtils.removeElementById("rating"); RatingUtils.addTag("div", "rating"); } }; //----------------------------------------------------------------------------------- testRating_Options_tooltipStrings_Null_DefaultMax = function () { RatingUtils.instantiate("rating"); RatingUtils.setOptionsAndVerify("rating", { tooltipStrings: null }); }; //----------------------------------------------------------------------------------- testRating_Options_tooltipStrings_NullStrings_DefaultMax = function () { var tooltipStrings = [null, null, null, null, null, null]; RatingUtils.instantiate("rating"); RatingUtils.setOptionsAndVerify("rating", { tooltipStrings: tooltipStrings }); }; //----------------------------------------------------------------------------------- testRating_Options_tooltipStrings_NULL_CustomMax = function () { for (var i = 0; i < 5; ++i) { var newMax = RatingUtils.randomNewMaxRating(25, RatingUtils.defaultMaxRating); RatingUtils.instantiate("rating", { maxRating: newMax }); RatingUtils.setOptionsAndVerify("rating", { tooltipStrings: null }); RatingUtils.removeElementById("rating"); RatingUtils.addTag("div", "rating"); } }; //----------------------------------------------------------------------------------- testRating_Options_tooltipStrings_NullStrings_CustomMax = function () { var tooltipStrings = [null, null, null, null, null, null, null]; RatingUtils.instantiate("rating", { maxRating: tooltipStrings.length - 1 }); RatingUtils.setOptionsAndVerify("rating", { tooltipStrings: tooltipStrings }); }; //----------------------------------------------------------------------------------- testRating_Options_tooltipStrings_TooFew_DefaultMax = function () { RatingUtils.instantiate("rating"); RatingUtils.setOptionsAndVerify("rating", { tooltipStrings: ["tooltip1", "tooltip1", "tooltip3"] }); }; //----------------------------------------------------------------------------------- testRating_Options_tooltipStrings_TooFew_CustomMax = function () { for (var i = 0; i < 5; ++i) { var newMax = RatingUtils.randomNewMaxRating(25, RatingUtils.defaultMaxRating); var tooltipStrings = new Array(); var tooltips = RatingUtils.randomInt(1, newMax - 1); for (var j = 0; j < tooltips; ++j) { tooltipStrings[j] = RatingUtils.randomHTML(RatingUtils.randomInt(1, 5), true); } RatingUtils.instantiate("rating", { maxRating: newMax }); RatingUtils.setOptionsAndVerify("rating", { tooltipStrings: tooltipStrings }); RatingUtils.removeElementById("rating"); RatingUtils.addTag("div", "rating"); } }; //----------------------------------------------------------------------------------- testRating_Options_tooltipStrings_TooMany_DefaultMax = function () { RatingUtils.instantiate("rating"); RatingUtils.setOptionsAndVerify("rating", { tooltipStrings: ["tooltip1", "tooltip1", "tooltip3", "tooltip4", "tooltip5", "tooltip6"] }); }; //----------------------------------------------------------------------------------- testRating_Options_tooltipStrings_TooMany_CustomMax = function () { for (var i = 0; i < 5; ++i) { var newMax = RatingUtils.randomNewMaxRating(25, RatingUtils.defaultMaxRating); var tooltipStrings = new Array(); var tooltips = RatingUtils.randomInt(newMax + 1, newMax * 2); for (var j = 0; j < tooltips; ++j) { tooltipStrings[j] = RatingUtils.randomHTML(RatingUtils.randomInt(1, 5), true); } RatingUtils.instantiate("rating", { maxRating: newMax }); RatingUtils.setOptionsAndVerify("rating", { tooltipStrings: tooltipStrings }); RatingUtils.removeElementById("rating"); RatingUtils.addTag("div", "rating"); } }; //----------------------------------------------------------------------------------- testRating_Options_tooltipStrings_Invalid_Number = function () { RatingUtils.instantiate("rating"); RatingUtils.setOptionsAndVerify("rating", { tooltipStrings: 5 }, true); }; //----------------------------------------------------------------------------------- testRating_Options_tooltipStrings_Invalid_String = function () { RatingUtils.instantiate("rating"); RatingUtils.setOptionsAndVerify("rating", { tooltipStrings: "Bad Tooltips" }, true); }; }; } // Register the object as a test class by passing in the name LiveUnit.registerTestClass("WinJSTests.OptionTests");