From 2660b1cd98dacd65af82a15bb063af5c629d1a62 Mon Sep 17 00:00:00 2001
From: jrfnl <github_nospam@adviesenzo.nl>
Date: Thu, 10 Dec 2015 06:24:51 +0100
Subject: [PATCH] Add unit test for ticket 22233. Props @exz.

---
 tests/phpunit/tests/option/updateOption.php | 27 ++++++++++++++++++++++++---
 1 file changed, 24 insertions(+), 3 deletions(-)

diff --git a/tests/phpunit/tests/option/updateOption.php b/tests/phpunit/tests/option/updateOption.php
index 01064ca..a3c1fbd 100644
--- a/tests/phpunit/tests/option/updateOption.php
+++ b/tests/phpunit/tests/option/updateOption.php
@@ -99,7 +99,7 @@ class Tests_Option_UpdateOption extends WP_UnitTestCase {
 	}
 
 	/**
-	 * @group 26394
+	 * @ticket 26394
 	 */
 	public function test_autoload_should_be_updated_for_existing_option_when_value_is_changed() {
 		global $wpdb;
@@ -120,7 +120,7 @@ class Tests_Option_UpdateOption extends WP_UnitTestCase {
 	}
 
 	/**
-	 * @group 26394
+	 * @ticket 26394
 	 */
 	public function test_autoload_should_not_be_updated_for_existing_option_when_value_is_unchanged() {
 		global $wpdb;
@@ -142,7 +142,7 @@ class Tests_Option_UpdateOption extends WP_UnitTestCase {
 	}
 
 	/**
-	 * @group 26394
+	 * @ticket 26394
 	 */
 	public function test_autoload_should_not_be_updated_for_existing_option_when_value_is_changed_but_no_value_of_autoload_is_provided() {
 		global $wpdb;
@@ -166,6 +166,27 @@ class Tests_Option_UpdateOption extends WP_UnitTestCase {
 	}
 
 	/**
+	 * @ticket 22233
+	 */
+	public function test_update_option_should_save_on_changed_instance_of_nested_object() {
+		$key = rand_str();
+
+		$obj1 = new stdClass;
+		$obj2 = new stdClass;
+
+		$obj1->prop = false;
+		$obj2->prop = false;
+
+		$array = array( $obj1, $obj2 );
+		$this->assertTrue( add_option( $key, $array ) );
+
+		$array[0]->prop = true;
+		$this->assertTrue( update_option( $key, $array ) );
+		$array[1]->prop = true;
+		$this->assertTrue( update_option( $key, $array ) );
+	}
+
+	/**
 	 * `add_filter()` callback for test_should_respect_default_option_filter_when_option_does_not_yet_exist_in_database().
 	 */
 	public function __return_foo() {
-- 
1.9.4.msysgit.2

