From ecde7cd41a59e9c3ff07f56baeeaec2147cca779 Mon Sep 17 00:00:00 2001
From: Jyoti Deka <dekajp@gmail.com>
Date: Mon, 14 Oct 2013 23:43:06 -0400
Subject: Widget: option-method should work as getter only when argument length
 is 1. Fixes #9601 - Widget: calling _setOption with undefined as 3rd argument
 makes it a getter

---
 tests/unit/widget/widget_core.js | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

(limited to 'tests/unit/widget')

diff --git a/tests/unit/widget/widget_core.js b/tests/unit/widget/widget_core.js
index ec4c85874..3cda48df9 100644
--- a/tests/unit/widget/widget_core.js
+++ b/tests/unit/widget/widget_core.js
@@ -535,7 +535,7 @@ test( ".option() - delegate to ._setOptions()", function() {
 });
 
 test( ".option() - delegate to ._setOption()", function() {
-	expect( 2 );
+	expect( 3 );
 	var div,
 		calls = [];
 	$.widget( "ui.testWidget", {
@@ -554,6 +554,11 @@ test( ".option() - delegate to ._setOption()", function() {
 	deepEqual( calls, [{ key: "foo", val: "bar" }],
 		"_setOption called for single option" );
 
+	calls = [];
+	div.testWidget( "option", "foo", undefined );
+	deepEqual( calls, [{ key: "foo", val: undefined }],
+		"_setOption called for single option where value is undefined" );
+
 	calls = [];
 	div.testWidget( "option", {
 		bar: "qux",
@@ -566,9 +571,9 @@ test( ".option() - delegate to ._setOption()", function() {
 });
 
 test( ".option() - deep option setter", function() {
-	expect( 6 );
+	expect( 9 );
 	$.widget( "ui.testWidget", {} );
-	var div = $( "<div>" ).testWidget();
+	var result, div = $( "<div>" ).testWidget();
 	function deepOption( from, to, msg ) {
 		div.testWidget( "instance" ).options.foo = from;
 		$.ui.testWidget.prototype._setOption = function( key, value ) {
@@ -580,6 +585,12 @@ test( ".option() - deep option setter", function() {
 	deepOption( { bar: "baz" }, { bar: "qux" }, "one deep" );
 	div.testWidget( "option", "foo.bar", "qux" );
 
+	deepOption( { bar: "baz" }, { bar: undefined }, "one deep - value = undefined" );
+
+	result = div.testWidget( "option", "foo.bar", undefined );
+
+	deepEqual ( result, div, "option should return widget on successful set operation" );
+
 	deepOption( null, { bar: "baz" }, "null" );
 	div.testWidget( "option", "foo.bar", "baz" );
 
-- 
cgit v1.2.3