From 5ba9735d12ebfbe5c01ea55a0a542b79da887564 Mon Sep 17 00:00:00 2001 From: tenzap Date: Mon, 19 Jun 2023 20:17:30 +0200 Subject: [PATCH 1/8] Fix phpunit 9 deprecation warning Output was produced with: . phpunit --migrate-configuration . Error was: . Warning: Your XML configuration validates against a deprecated schema. Suggestion: Migrate your XML configuration using "--migrate-configuration"! --- tests/phpunit.xml | 36 +++++++++++++----------------------- 1 file changed, 13 insertions(+), 23 deletions(-) diff --git a/tests/phpunit.xml b/tests/phpunit.xml index a1626ce91ad..abe1b7a7b5b 100644 --- a/tests/phpunit.xml +++ b/tests/phpunit.xml @@ -1,25 +1,15 @@ - - - - - ./codeigniter/core - ./codeigniter/helpers - ./codeigniter/libraries - - - - - ../system/ - - + + + + ../system/ + + + + + ./codeigniter/core + ./codeigniter/helpers + ./codeigniter/libraries + + From 7f8ded8678ad700c632410646af3d1bcf4fbac21 Mon Sep 17 00:00:00 2001 From: tenzap Date: Mon, 19 Jun 2023 20:18:54 +0200 Subject: [PATCH 2/8] fix error with phpunit10 (assertObjectHasAttribute deprecated) --- tests/codeigniter/core/Loader_test.php | 28 ++++++++++----------- tests/codeigniter/libraries/Driver_test.php | 8 +++--- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/tests/codeigniter/core/Loader_test.php b/tests/codeigniter/core/Loader_test.php index df9c9f44b68..45c50ac263d 100644 --- a/tests/codeigniter/core/Loader_test.php +++ b/tests/codeigniter/core/Loader_test.php @@ -36,7 +36,7 @@ public function test_library() // Test loading as an array. $this->assertInstanceOf('CI_Loader', $this->load->library(array($lib))); $this->assertTrue(class_exists($class), $class.' does not exist'); - $this->assertObjectHasAttribute($lib, $this->ci_obj); + $this->assertObjectHasProperty($lib, $this->ci_obj); $this->assertInstanceOf($class, $this->ci_obj->$lib); // Create library in VFS @@ -88,21 +88,21 @@ public function test_library_extension() $this->assertInstanceOf('CI_Loader', $this->load->library($lib)); $this->assertTrue(class_exists($class), $class.' does not exist'); $this->assertTrue(class_exists($ext), $ext.' does not exist'); - $this->assertObjectHasAttribute($name, $this->ci_obj); + $this->assertObjectHasProperty($name, $this->ci_obj); $this->assertInstanceOf($class, $this->ci_obj->$name); $this->assertInstanceOf($ext, $this->ci_obj->$name); // Test reloading with object name $obj = 'exttest'; $this->assertInstanceOf('CI_Loader', $this->load->library($lib, NULL, $obj)); - $this->assertObjectHasAttribute($obj, $this->ci_obj); + $this->assertObjectHasProperty($obj, $this->ci_obj); $this->assertInstanceOf($class, $this->ci_obj->$obj); $this->assertInstanceOf($ext, $this->ci_obj->$obj); // Test reloading unset($this->ci_obj->$name); $this->assertInstanceOf('CI_Loader', $this->load->library($lib)); - $this->assertObjectHasAttribute($name, $this->ci_obj); + $this->assertObjectHasProperty($name, $this->ci_obj); // Create baseless library $name = 'ext_baseless_lib'; @@ -140,7 +140,7 @@ public function test_library_config() $obj = 'testy'; $this->assertInstanceOf('CI_Loader', $this->load->library($lib, NULL, $obj)); $this->assertTrue(class_exists($class), $class.' does not exist'); - $this->assertObjectHasAttribute($obj, $this->ci_obj); + $this->assertObjectHasProperty($obj, $this->ci_obj); $this->assertInstanceOf($class, $this->ci_obj->$obj); $this->assertEquals($cfg, $this->ci_obj->$obj->config); @@ -172,7 +172,7 @@ public function test_load_library_in_application_dir() // Was the model class instantiated. $this->assertTrue(class_exists($class), $class.' does not exist'); - $this->assertObjectHasAttribute($lib, $this->ci_obj); + $this->assertObjectHasProperty($lib, $this->ci_obj); $this->assertInstanceOf($class, $this->ci_obj->$lib); } @@ -193,13 +193,13 @@ class_exists('CI_Driver_Library', TRUE); // Test loading as an array. $this->assertInstanceOf('CI_Loader', $this->load->driver(array($driver))); $this->assertTrue(class_exists($class), $class.' does not exist'); - $this->assertObjectHasAttribute($driver, $this->ci_obj); + $this->assertObjectHasProperty($driver, $this->ci_obj); $this->assertInstanceOf($class, $this->ci_obj->$driver); // Test loading as a library with a name $obj = 'testdrive'; $this->assertInstanceOf('CI_Loader', $this->load->library($driver, NULL, $obj)); - $this->assertObjectHasAttribute($obj, $this->ci_obj); + $this->assertObjectHasProperty($obj, $this->ci_obj); $this->assertInstanceOf($class, $this->ci_obj->$obj); // Test a string given to params @@ -222,7 +222,7 @@ public function test_models() // Was the model class instantiated. $this->assertTrue(class_exists($model)); - $this->assertObjectHasAttribute($model, $this->ci_obj); + $this->assertObjectHasProperty($model, $this->ci_obj); // Test no model given $this->assertInstanceOf('CI_Loader', $this->load->model('')); @@ -248,8 +248,8 @@ public function test_model_subdir() // Was the model class instantiated? $this->assertTrue(class_exists($model)); - $this->assertObjectHasAttribute($name, $this->ci_obj); - $this->assertObjectHasAttribute($name, $this->ci_obj); + $this->assertObjectHasProperty($name, $this->ci_obj); + $this->assertObjectHasProperty($name, $this->ci_obj); $this->assertInstanceOf($base, $this->ci_obj->$name); $this->assertInstanceOf($model, $this->ci_obj->$name); @@ -607,17 +607,17 @@ public function test_initialize() // Verify library $this->assertTrue(class_exists($lib_class), $lib_class.' does not exist'); - $this->assertObjectHasAttribute($lib, $this->ci_obj); + $this->assertObjectHasProperty($lib, $this->ci_obj); $this->assertInstanceOf($lib_class, $this->ci_obj->$lib); // Verify driver $this->assertTrue(class_exists($drv_class), $drv_class.' does not exist'); - $this->assertObjectHasAttribute($drv, $this->ci_obj); + $this->assertObjectHasProperty($drv, $this->ci_obj); $this->assertInstanceOf($drv_class, $this->ci_obj->$drv); // Verify model $this->assertTrue(class_exists($model), $model.' does not exist'); - $this->assertObjectHasAttribute($model, $this->ci_obj); + $this->assertObjectHasProperty($model, $this->ci_obj); $this->assertInstanceOf($model, $this->ci_obj->$model); // Verify config calls diff --git a/tests/codeigniter/libraries/Driver_test.php b/tests/codeigniter/libraries/Driver_test.php index ea5cfa235f8..5089bb851e1 100644 --- a/tests/codeigniter/libraries/Driver_test.php +++ b/tests/codeigniter/libraries/Driver_test.php @@ -51,12 +51,12 @@ public function test_load_driver() $this->assertEquals($this->name, $this->lib->get_name()); // Was driver loaded? - $this->assertObjectHasAttribute($driver, $this->lib); + $this->assertObjectHasProperty($driver, $this->lib); $this->assertInstanceOf($class, $this->lib->$driver); $this->assertInstanceOf('CI_Driver', $this->lib->$driver); // Was decorate called? - $this->assertObjectHasAttribute($prop, $this->lib->$driver); + $this->assertObjectHasProperty($prop, $this->lib->$driver); $this->assertTrue($this->lib->$driver->$prop); // Do we get an error for an invalid driver? @@ -86,7 +86,7 @@ public function test_load_app_driver() $this->assertNotNull($this->lib->load_driver($driver)); // Was driver loaded? - $this->assertObjectHasAttribute($driver, $this->lib); + $this->assertObjectHasProperty($driver, $this->lib); $this->assertInstanceOf($class, $this->lib->$driver); $this->assertInstanceOf('CI_Driver', $this->lib->$driver); @@ -120,7 +120,7 @@ public function test_load_driver_ext() $this->assertNotNull($this->lib->load_driver($driver)); // Was driver loaded? - $this->assertObjectHasAttribute($driver, $this->lib); + $this->assertObjectHasProperty($driver, $this->lib); $this->assertInstanceOf($class, $this->lib->$driver); $this->assertInstanceOf($baseclass, $this->lib->$driver); $this->assertInstanceOf('CI_Driver', $this->lib->$driver); From 88d6501b9f3d962327d6490d7d079d07166ba01a Mon Sep 17 00:00:00 2001 From: tenzap Date: Mon, 19 Jun 2023 20:19:20 +0200 Subject: [PATCH 3/8] fix error with phpunit10 (migrate configuration) Produced by: phpunit --migrate-configuration --- tests/phpunit.xml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/tests/phpunit.xml b/tests/phpunit.xml index abe1b7a7b5b..4dda3358046 100644 --- a/tests/phpunit.xml +++ b/tests/phpunit.xml @@ -1,10 +1,6 @@ - - - - ../system/ - - + + ./codeigniter/core @@ -12,4 +8,9 @@ ./codeigniter/libraries + + + ../system/ + + From 7c41994c26581993c4200a66959e89662f7c3b95 Mon Sep 17 00:00:00 2001 From: tenzap Date: Mon, 19 Jun 2023 20:20:35 +0200 Subject: [PATCH 4/8] fix error with phpunit10 (cannot override runBare()) Fatal error: Cannot override final method PHPUnit\Framework\TestCase::runBare() in tests/mocks/ci_testcase.php on line 351 --- tests/mocks/ci_testcase.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/mocks/ci_testcase.php b/tests/mocks/ci_testcase.php index 3ebb6b822e9..92c435b1e85 100644 --- a/tests/mocks/ci_testcase.php +++ b/tests/mocks/ci_testcase.php @@ -35,6 +35,7 @@ public function __construct($name = null, array $data = array(), $dataName = '') public function setUp() { + self::$ci_test_instance = $this; // Setup VFS with base directories $this->ci_vfs_root = vfsStream::setup(''); $this->ci_app_root = vfsStream::newDirectory('application')->at($this->ci_vfs_root); @@ -347,11 +348,11 @@ public function ci_vfs_path($path, $base = '') * happen in setUp, but someone is bound to forget to * call the parent method and debugging this is no fun. */ - public function runBare() + /*public function runBare() { self::$ci_test_instance = $this; parent::runBare(); - } + }*/ // -------------------------------------------------------------------- From e1163945db8c1403adac531d7fd1ea2324759840 Mon Sep 17 00:00:00 2001 From: tenzap Date: Mon, 19 Jun 2023 20:21:54 +0200 Subject: [PATCH 5/8] fix error with phpunit10 (undefined method setMethods()) Was removed in phpunit10 Error: Call to undefined method PHPUnit\Framework\MockObject\MockBuilder::setMethods() --- tests/codeigniter/core/Loader_test.php | 4 ++-- tests/codeigniter/helpers/language_helper_test.php | 2 +- tests/codeigniter/helpers/number_helper_test.php | 2 +- tests/codeigniter/libraries/Calendar_test.php | 4 ++-- tests/codeigniter/libraries/Driver_test.php | 2 +- tests/codeigniter/libraries/Form_validation_test.php | 4 ++-- tests/codeigniter/libraries/Upload_test.php | 2 +- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/tests/codeigniter/core/Loader_test.php b/tests/codeigniter/core/Loader_test.php index 45c50ac263d..bf653208e29 100644 --- a/tests/codeigniter/core/Loader_test.php +++ b/tests/codeigniter/core/Loader_test.php @@ -322,7 +322,7 @@ public function test_load_view() $this->assertEquals($content.'undefined', $out); // Mock output class - $output = $this->getMockBuilder('CI_Output')->setMethods(array('append_output'))->getMock(); + $output = $this->getMockBuilder('CI_Output')->onlyMethods(array('append_output'))->getMock(); $output->expects($this->once())->method('append_output')->with($content.$value); $this->ci_instance_var('output', $output); @@ -483,7 +483,7 @@ public function test_language() { // Mock lang class and test load call $file = 'test'; - $lang = $this->getMockBuilder('CI_Lang')->setMethods(array('load'))->getMock(); + $lang = $this->getMockBuilder('CI_Lang')->onlyMethods(array('load'))->getMock(); $lang->expects($this->once())->method('load')->with($file); $this->ci_instance_var('lang', $lang); $this->assertInstanceOf('CI_Loader', $this->load->language($file)); diff --git a/tests/codeigniter/helpers/language_helper_test.php b/tests/codeigniter/helpers/language_helper_test.php index 1ddabea3d6b..ccb22bab669 100644 --- a/tests/codeigniter/helpers/language_helper_test.php +++ b/tests/codeigniter/helpers/language_helper_test.php @@ -5,7 +5,7 @@ class Language_helper_test extends CI_TestCase { public function test_lang() { $this->helper('language'); - $lang = $this->getMockBuilder('CI_Lang')->setMethods(array('line'))->getMock(); + $lang = $this->getMockBuilder('CI_Lang')->onlyMethods(array('line'))->getMock(); $lang->expects($this->any())->method('line')->will($this->returnValue(FALSE)); $this->ci_instance_var('lang', $lang); diff --git a/tests/codeigniter/helpers/number_helper_test.php b/tests/codeigniter/helpers/number_helper_test.php index 663e354fef3..7aa27776028 100644 --- a/tests/codeigniter/helpers/number_helper_test.php +++ b/tests/codeigniter/helpers/number_helper_test.php @@ -11,7 +11,7 @@ public function set_up() // Mock away load, too much going on in there, // we'll just check for the expected parameter - $lang = $this->getMockBuilder('CI_Lang')->setMethods(array('load'))->getMock(); + $lang = $this->getMockBuilder('CI_Lang')->onlyMethods(array('load'))->getMock(); $lang->expects($this->once()) ->method('load') ->with($this->equalTo('number')); diff --git a/tests/codeigniter/libraries/Calendar_test.php b/tests/codeigniter/libraries/Calendar_test.php index ad1f45e8c77..afbad19648b 100644 --- a/tests/codeigniter/libraries/Calendar_test.php +++ b/tests/codeigniter/libraries/Calendar_test.php @@ -5,9 +5,9 @@ class Calendar_test extends CI_TestCase { public function set_up() { // Required for get_total_days() - $this->ci_instance_var('load', $this->getMockBuilder('CI_Loader')->setMethods(array('helper'))->getMock()); + $this->ci_instance_var('load', $this->getMockBuilder('CI_Loader')->onlyMethods(array('helper'))->getMock()); - $lang = $this->getMockBuilder('CI_Lang')->setMethods(array('load', 'line'))->getMock(); + $lang = $this->getMockBuilder('CI_Lang')->onlyMethods(array('load', 'line'))->getMock(); $lang->expects($this->any())->method('line')->will($this->returnValue(FALSE)); $this->ci_instance_var('lang', $lang); diff --git a/tests/codeigniter/libraries/Driver_test.php b/tests/codeigniter/libraries/Driver_test.php index 5089bb851e1..8070a252268 100644 --- a/tests/codeigniter/libraries/Driver_test.php +++ b/tests/codeigniter/libraries/Driver_test.php @@ -18,7 +18,7 @@ public function set_up() // Mock Loader->get_package_paths $paths = 'get_package_paths'; - $ldr = $this->getMockBuilder('CI_Loader')->setMethods(array($paths))->getMock(); + $ldr = $this->getMockBuilder('CI_Loader')->onlyMethods(array($paths))->getMock(); $ldr->expects($this->any())->method($paths)->will($this->returnValue(array(APPPATH, BASEPATH))); $this->ci_instance_var('load', $ldr); diff --git a/tests/codeigniter/libraries/Form_validation_test.php b/tests/codeigniter/libraries/Form_validation_test.php index 1bafd50c350..f48f20331de 100644 --- a/tests/codeigniter/libraries/Form_validation_test.php +++ b/tests/codeigniter/libraries/Form_validation_test.php @@ -8,10 +8,10 @@ public function set_up() // Create a mock loader since load->helper() looks in the wrong directories for unit tests, // We'll use CI_TestCase->helper() instead - $loader = $this->getMockBuilder('CI_Loader')->setMethods(array('helper'))->getMock(); + $loader = $this->getMockBuilder('CI_Loader')->onlyMethods(array('helper'))->getMock(); // Same applies for lang - $lang = $this->getMockBuilder('CI_Lang')->setMethods(array('load'))->getMock(); + $lang = $this->getMockBuilder('CI_Lang')->onlyMethods(array('load'))->getMock(); $security = new Mock_Core_Security('UTF-8'); $input = new CI_Input($security); diff --git a/tests/codeigniter/libraries/Upload_test.php b/tests/codeigniter/libraries/Upload_test.php index 74a7d2c22df..db6f61c9dbd 100644 --- a/tests/codeigniter/libraries/Upload_test.php +++ b/tests/codeigniter/libraries/Upload_test.php @@ -7,7 +7,7 @@ public function set_up() $ci = $this->ci_instance(); $ci->upload = new CI_Upload(); $ci->security = new Mock_Core_Security('UTF-8'); - $ci->lang = $this->getMockBuilder('CI_Lang')->setMethods(array('load', 'line'))->getMock(); + $ci->lang = $this->getMockBuilder('CI_Lang')->onlyMethods(array('load', 'line'))->getMock(); $ci->lang->expects($this->any())->method('line')->will($this->returnValue(FALSE)); $this->upload = $ci->upload; } From d7c98909966b9fd79ab2ac96ab684846523fa7db Mon Sep 17 00:00:00 2001 From: tenzap Date: Mon, 19 Jun 2023 20:23:12 +0200 Subject: [PATCH 6/8] fix error with phpunit10 (security_helper_test class not found) 1) Class security_helper_test cannot be found in tests/codeigniter/helpers/security_helper_test.php --- tests/codeigniter/helpers/security_helper_test.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/codeigniter/helpers/security_helper_test.php b/tests/codeigniter/helpers/security_helper_test.php index d7e3f47343c..0e93f426bc5 100644 --- a/tests/codeigniter/helpers/security_helper_test.php +++ b/tests/codeigniter/helpers/security_helper_test.php @@ -1,8 +1,8 @@ helper('security'); $obj = new stdClass; From 4f295ac74c881cc2340294bf784aa6cbad794b7b Mon Sep 17 00:00:00 2001 From: tenzap Date: Wed, 21 Jun 2023 07:17:49 +0200 Subject: [PATCH 7/8] Revert "fix error with phpunit10 (assertObjectHasAttribute deprecated)" This reverts commit 8f12bc3611f49a59a67df45a163310893841130f. --- tests/codeigniter/core/Loader_test.php | 28 ++++++++++----------- tests/codeigniter/libraries/Driver_test.php | 8 +++--- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/tests/codeigniter/core/Loader_test.php b/tests/codeigniter/core/Loader_test.php index bf653208e29..0308d95fe8a 100644 --- a/tests/codeigniter/core/Loader_test.php +++ b/tests/codeigniter/core/Loader_test.php @@ -36,7 +36,7 @@ public function test_library() // Test loading as an array. $this->assertInstanceOf('CI_Loader', $this->load->library(array($lib))); $this->assertTrue(class_exists($class), $class.' does not exist'); - $this->assertObjectHasProperty($lib, $this->ci_obj); + $this->assertObjectHasAttribute($lib, $this->ci_obj); $this->assertInstanceOf($class, $this->ci_obj->$lib); // Create library in VFS @@ -88,21 +88,21 @@ public function test_library_extension() $this->assertInstanceOf('CI_Loader', $this->load->library($lib)); $this->assertTrue(class_exists($class), $class.' does not exist'); $this->assertTrue(class_exists($ext), $ext.' does not exist'); - $this->assertObjectHasProperty($name, $this->ci_obj); + $this->assertObjectHasAttribute($name, $this->ci_obj); $this->assertInstanceOf($class, $this->ci_obj->$name); $this->assertInstanceOf($ext, $this->ci_obj->$name); // Test reloading with object name $obj = 'exttest'; $this->assertInstanceOf('CI_Loader', $this->load->library($lib, NULL, $obj)); - $this->assertObjectHasProperty($obj, $this->ci_obj); + $this->assertObjectHasAttribute($obj, $this->ci_obj); $this->assertInstanceOf($class, $this->ci_obj->$obj); $this->assertInstanceOf($ext, $this->ci_obj->$obj); // Test reloading unset($this->ci_obj->$name); $this->assertInstanceOf('CI_Loader', $this->load->library($lib)); - $this->assertObjectHasProperty($name, $this->ci_obj); + $this->assertObjectHasAttribute($name, $this->ci_obj); // Create baseless library $name = 'ext_baseless_lib'; @@ -140,7 +140,7 @@ public function test_library_config() $obj = 'testy'; $this->assertInstanceOf('CI_Loader', $this->load->library($lib, NULL, $obj)); $this->assertTrue(class_exists($class), $class.' does not exist'); - $this->assertObjectHasProperty($obj, $this->ci_obj); + $this->assertObjectHasAttribute($obj, $this->ci_obj); $this->assertInstanceOf($class, $this->ci_obj->$obj); $this->assertEquals($cfg, $this->ci_obj->$obj->config); @@ -172,7 +172,7 @@ public function test_load_library_in_application_dir() // Was the model class instantiated. $this->assertTrue(class_exists($class), $class.' does not exist'); - $this->assertObjectHasProperty($lib, $this->ci_obj); + $this->assertObjectHasAttribute($lib, $this->ci_obj); $this->assertInstanceOf($class, $this->ci_obj->$lib); } @@ -193,13 +193,13 @@ class_exists('CI_Driver_Library', TRUE); // Test loading as an array. $this->assertInstanceOf('CI_Loader', $this->load->driver(array($driver))); $this->assertTrue(class_exists($class), $class.' does not exist'); - $this->assertObjectHasProperty($driver, $this->ci_obj); + $this->assertObjectHasAttribute($driver, $this->ci_obj); $this->assertInstanceOf($class, $this->ci_obj->$driver); // Test loading as a library with a name $obj = 'testdrive'; $this->assertInstanceOf('CI_Loader', $this->load->library($driver, NULL, $obj)); - $this->assertObjectHasProperty($obj, $this->ci_obj); + $this->assertObjectHasAttribute($obj, $this->ci_obj); $this->assertInstanceOf($class, $this->ci_obj->$obj); // Test a string given to params @@ -222,7 +222,7 @@ public function test_models() // Was the model class instantiated. $this->assertTrue(class_exists($model)); - $this->assertObjectHasProperty($model, $this->ci_obj); + $this->assertObjectHasAttribute($model, $this->ci_obj); // Test no model given $this->assertInstanceOf('CI_Loader', $this->load->model('')); @@ -248,8 +248,8 @@ public function test_model_subdir() // Was the model class instantiated? $this->assertTrue(class_exists($model)); - $this->assertObjectHasProperty($name, $this->ci_obj); - $this->assertObjectHasProperty($name, $this->ci_obj); + $this->assertObjectHasAttribute($name, $this->ci_obj); + $this->assertObjectHasAttribute($name, $this->ci_obj); $this->assertInstanceOf($base, $this->ci_obj->$name); $this->assertInstanceOf($model, $this->ci_obj->$name); @@ -607,17 +607,17 @@ public function test_initialize() // Verify library $this->assertTrue(class_exists($lib_class), $lib_class.' does not exist'); - $this->assertObjectHasProperty($lib, $this->ci_obj); + $this->assertObjectHasAttribute($lib, $this->ci_obj); $this->assertInstanceOf($lib_class, $this->ci_obj->$lib); // Verify driver $this->assertTrue(class_exists($drv_class), $drv_class.' does not exist'); - $this->assertObjectHasProperty($drv, $this->ci_obj); + $this->assertObjectHasAttribute($drv, $this->ci_obj); $this->assertInstanceOf($drv_class, $this->ci_obj->$drv); // Verify model $this->assertTrue(class_exists($model), $model.' does not exist'); - $this->assertObjectHasProperty($model, $this->ci_obj); + $this->assertObjectHasAttribute($model, $this->ci_obj); $this->assertInstanceOf($model, $this->ci_obj->$model); // Verify config calls diff --git a/tests/codeigniter/libraries/Driver_test.php b/tests/codeigniter/libraries/Driver_test.php index 8070a252268..406092a7a98 100644 --- a/tests/codeigniter/libraries/Driver_test.php +++ b/tests/codeigniter/libraries/Driver_test.php @@ -51,12 +51,12 @@ public function test_load_driver() $this->assertEquals($this->name, $this->lib->get_name()); // Was driver loaded? - $this->assertObjectHasProperty($driver, $this->lib); + $this->assertObjectHasAttribute($driver, $this->lib); $this->assertInstanceOf($class, $this->lib->$driver); $this->assertInstanceOf('CI_Driver', $this->lib->$driver); // Was decorate called? - $this->assertObjectHasProperty($prop, $this->lib->$driver); + $this->assertObjectHasAttribute($prop, $this->lib->$driver); $this->assertTrue($this->lib->$driver->$prop); // Do we get an error for an invalid driver? @@ -86,7 +86,7 @@ public function test_load_app_driver() $this->assertNotNull($this->lib->load_driver($driver)); // Was driver loaded? - $this->assertObjectHasProperty($driver, $this->lib); + $this->assertObjectHasAttribute($driver, $this->lib); $this->assertInstanceOf($class, $this->lib->$driver); $this->assertInstanceOf('CI_Driver', $this->lib->$driver); @@ -120,7 +120,7 @@ public function test_load_driver_ext() $this->assertNotNull($this->lib->load_driver($driver)); // Was driver loaded? - $this->assertObjectHasProperty($driver, $this->lib); + $this->assertObjectHasAttribute($driver, $this->lib); $this->assertInstanceOf($class, $this->lib->$driver); $this->assertInstanceOf($baseclass, $this->lib->$driver); $this->assertInstanceOf('CI_Driver', $this->lib->$driver); From 310844b14b48ebefe60b4ecaa24b5750e25c96e2 Mon Sep 17 00:00:00 2001 From: tenzap Date: Wed, 21 Jun 2023 07:18:40 +0200 Subject: [PATCH 8/8] fix error with phpunit10 (assertObjectHasAttribute deprecated) --- tests/codeigniter/core/Loader_test.php | 36 +++++++++++++-------- tests/codeigniter/libraries/Driver_test.php | 17 +++++++--- 2 files changed, 35 insertions(+), 18 deletions(-) diff --git a/tests/codeigniter/core/Loader_test.php b/tests/codeigniter/core/Loader_test.php index 0308d95fe8a..d76e820346d 100644 --- a/tests/codeigniter/core/Loader_test.php +++ b/tests/codeigniter/core/Loader_test.php @@ -4,6 +4,8 @@ class Loader_test extends CI_TestCase { private $ci_obj; + private $realAssertObjectHasProperty; + public function set_up() { // Instantiate a new loader @@ -16,6 +18,12 @@ public function set_up() // Set subclass prefix $this->prefix = 'MY_'; $this->ci_set_config('subclass_prefix', $this->prefix); + + // assertObjectHasAttribute() is deprecated and will be removed in PHPUnit 10. + // It was replaced by assertObjectHasProperty() in phpunit 10.1.0+ + $this->realAssertObjectHasProperty = method_exists($this, 'assertObjectHasProperty') + ? 'assertObjectHasProperty' + : 'assertObjectHasAttribute'; } // -------------------------------------------------------------------- @@ -36,7 +44,7 @@ public function test_library() // Test loading as an array. $this->assertInstanceOf('CI_Loader', $this->load->library(array($lib))); $this->assertTrue(class_exists($class), $class.' does not exist'); - $this->assertObjectHasAttribute($lib, $this->ci_obj); + call_user_func_array(array($this, $this->realAssertObjectHasProperty), array($lib, $this->ci_obj)); $this->assertInstanceOf($class, $this->ci_obj->$lib); // Create library in VFS @@ -88,21 +96,21 @@ public function test_library_extension() $this->assertInstanceOf('CI_Loader', $this->load->library($lib)); $this->assertTrue(class_exists($class), $class.' does not exist'); $this->assertTrue(class_exists($ext), $ext.' does not exist'); - $this->assertObjectHasAttribute($name, $this->ci_obj); + call_user_func_array(array($this, $this->realAssertObjectHasProperty), array($name, $this->ci_obj)); $this->assertInstanceOf($class, $this->ci_obj->$name); $this->assertInstanceOf($ext, $this->ci_obj->$name); // Test reloading with object name $obj = 'exttest'; $this->assertInstanceOf('CI_Loader', $this->load->library($lib, NULL, $obj)); - $this->assertObjectHasAttribute($obj, $this->ci_obj); + call_user_func_array(array($this, $this->realAssertObjectHasProperty), array($obj, $this->ci_obj)); $this->assertInstanceOf($class, $this->ci_obj->$obj); $this->assertInstanceOf($ext, $this->ci_obj->$obj); // Test reloading unset($this->ci_obj->$name); $this->assertInstanceOf('CI_Loader', $this->load->library($lib)); - $this->assertObjectHasAttribute($name, $this->ci_obj); + call_user_func_array(array($this, $this->realAssertObjectHasProperty), array($name, $this->ci_obj)); // Create baseless library $name = 'ext_baseless_lib'; @@ -140,7 +148,7 @@ public function test_library_config() $obj = 'testy'; $this->assertInstanceOf('CI_Loader', $this->load->library($lib, NULL, $obj)); $this->assertTrue(class_exists($class), $class.' does not exist'); - $this->assertObjectHasAttribute($obj, $this->ci_obj); + call_user_func_array(array($this, $this->realAssertObjectHasProperty), array($obj, $this->ci_obj)); $this->assertInstanceOf($class, $this->ci_obj->$obj); $this->assertEquals($cfg, $this->ci_obj->$obj->config); @@ -172,7 +180,7 @@ public function test_load_library_in_application_dir() // Was the model class instantiated. $this->assertTrue(class_exists($class), $class.' does not exist'); - $this->assertObjectHasAttribute($lib, $this->ci_obj); + call_user_func_array(array($this, $this->realAssertObjectHasProperty), array($lib, $this->ci_obj)); $this->assertInstanceOf($class, $this->ci_obj->$lib); } @@ -193,13 +201,13 @@ class_exists('CI_Driver_Library', TRUE); // Test loading as an array. $this->assertInstanceOf('CI_Loader', $this->load->driver(array($driver))); $this->assertTrue(class_exists($class), $class.' does not exist'); - $this->assertObjectHasAttribute($driver, $this->ci_obj); + call_user_func_array(array($this, $this->realAssertObjectHasProperty), array($driver, $this->ci_obj)); $this->assertInstanceOf($class, $this->ci_obj->$driver); // Test loading as a library with a name $obj = 'testdrive'; $this->assertInstanceOf('CI_Loader', $this->load->library($driver, NULL, $obj)); - $this->assertObjectHasAttribute($obj, $this->ci_obj); + call_user_func_array(array($this, $this->realAssertObjectHasProperty), array($obj, $this->ci_obj)); $this->assertInstanceOf($class, $this->ci_obj->$obj); // Test a string given to params @@ -222,7 +230,7 @@ public function test_models() // Was the model class instantiated. $this->assertTrue(class_exists($model)); - $this->assertObjectHasAttribute($model, $this->ci_obj); + call_user_func_array(array($this, $this->realAssertObjectHasProperty), array($model, $this->ci_obj)); // Test no model given $this->assertInstanceOf('CI_Loader', $this->load->model('')); @@ -248,8 +256,8 @@ public function test_model_subdir() // Was the model class instantiated? $this->assertTrue(class_exists($model)); - $this->assertObjectHasAttribute($name, $this->ci_obj); - $this->assertObjectHasAttribute($name, $this->ci_obj); + call_user_func_array(array($this, $this->realAssertObjectHasProperty), array($name, $this->ci_obj)); + call_user_func_array(array($this, $this->realAssertObjectHasProperty), array($name, $this->ci_obj)); $this->assertInstanceOf($base, $this->ci_obj->$name); $this->assertInstanceOf($model, $this->ci_obj->$name); @@ -607,17 +615,17 @@ public function test_initialize() // Verify library $this->assertTrue(class_exists($lib_class), $lib_class.' does not exist'); - $this->assertObjectHasAttribute($lib, $this->ci_obj); + call_user_func_array(array($this, $this->realAssertObjectHasProperty), array($lib, $this->ci_obj)); $this->assertInstanceOf($lib_class, $this->ci_obj->$lib); // Verify driver $this->assertTrue(class_exists($drv_class), $drv_class.' does not exist'); - $this->assertObjectHasAttribute($drv, $this->ci_obj); + call_user_func_array(array($this, $this->realAssertObjectHasProperty), array($drv, $this->ci_obj)); $this->assertInstanceOf($drv_class, $this->ci_obj->$drv); // Verify model $this->assertTrue(class_exists($model), $model.' does not exist'); - $this->assertObjectHasAttribute($model, $this->ci_obj); + call_user_func_array(array($this, $this->realAssertObjectHasProperty), array($model, $this->ci_obj)); $this->assertInstanceOf($model, $this->ci_obj->$model); // Verify config calls diff --git a/tests/codeigniter/libraries/Driver_test.php b/tests/codeigniter/libraries/Driver_test.php index 406092a7a98..d132418a807 100644 --- a/tests/codeigniter/libraries/Driver_test.php +++ b/tests/codeigniter/libraries/Driver_test.php @@ -7,6 +7,8 @@ class Driver_test extends CI_TestCase { private $name; + private $realAssertObjectHasProperty; + /** * Set up test framework */ @@ -25,6 +27,12 @@ public function set_up() // Create mock driver library $this->name = 'Driver'; $this->lib = new Mock_Libraries_Driver(); + + // assertObjectHasAttribute() is deprecated and will be removed in PHPUnit 10. + // It was replaced by assertObjectHasProperty() in phpunit 10.1.0+ + $this->realAssertObjectHasProperty = method_exists($this, 'assertObjectHasProperty') + ? 'assertObjectHasProperty' + : 'assertObjectHasAttribute'; } /** @@ -51,12 +59,12 @@ public function test_load_driver() $this->assertEquals($this->name, $this->lib->get_name()); // Was driver loaded? - $this->assertObjectHasAttribute($driver, $this->lib); + call_user_func_array(array($this, $this->realAssertObjectHasProperty), array($driver, $this->lib)); $this->assertInstanceOf($class, $this->lib->$driver); $this->assertInstanceOf('CI_Driver', $this->lib->$driver); // Was decorate called? - $this->assertObjectHasAttribute($prop, $this->lib->$driver); + call_user_func_array(array($this, $this->realAssertObjectHasProperty), array($prop, $this->lib->$driver)); $this->assertTrue($this->lib->$driver->$prop); // Do we get an error for an invalid driver? @@ -86,7 +94,8 @@ public function test_load_app_driver() $this->assertNotNull($this->lib->load_driver($driver)); // Was driver loaded? - $this->assertObjectHasAttribute($driver, $this->lib); + call_user_func_array(array($this, $this->realAssertObjectHasProperty), array($driver, $this->lib)); + $this->assertInstanceOf($class, $this->lib->$driver); $this->assertInstanceOf('CI_Driver', $this->lib->$driver); @@ -120,7 +129,7 @@ public function test_load_driver_ext() $this->assertNotNull($this->lib->load_driver($driver)); // Was driver loaded? - $this->assertObjectHasAttribute($driver, $this->lib); + call_user_func_array(array($this, $this->realAssertObjectHasProperty), array($driver, $this->lib)); $this->assertInstanceOf($class, $this->lib->$driver); $this->assertInstanceOf($baseclass, $this->lib->$driver); $this->assertInstanceOf('CI_Driver', $this->lib->$driver);