From 03fc4b7f1ac06d14f9cce47244aaeb7bd677b408 Mon Sep 17 00:00:00 2001 From: Wilmer Arambula Date: Tue, 26 Sep 2023 06:55:02 -0300 Subject: [PATCH 1/6] Raise min version to `PHP 7.3`, check compatibility `PHP 8.3`. --- .github/workflows/build.yml | 2 +- composer.json | 16 ++------- tests/AccordionTest.php | 24 +++++++------ tests/ActiveFieldDefaultFormCheckTest.php | 8 ++--- tests/ActiveFieldTest.php | 6 ++-- tests/ActiveFormTest.php | 34 +++++++++--------- tests/ButtonDropdownTest.php | 2 +- tests/CarouselTest.php | 2 +- tests/LinkPagerTest.php | 26 +++++++------- tests/ModalTest.php | 6 ++-- tests/NavBarTest.php | 6 ++-- tests/NavTest.php | 2 +- tests/TabsTest.php | 44 +++++++++++------------ tests/TestCase.php | 8 ++--- tests/ToggleButtonGroupTest.php | 4 +-- tests/bootstrap.php | 2 -- tests/compatibility.php | 32 ----------------- 17 files changed, 91 insertions(+), 133 deletions(-) delete mode 100644 tests/compatibility.php diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 65c872d2e..bcec9f5d3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,7 +13,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest] - php: ['5.4', '5.5', '5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0'] + php: ['7.3', '7.4', '8.1', '8.2', '8.3'] steps: - name: Checkout diff --git a/composer.json b/composer.json index eb301994c..db221000f 100755 --- a/composer.json +++ b/composer.json @@ -36,13 +36,13 @@ } ], "require": { + "php": ">=7.3", "yiisoft/yii2": "^2.0.43", "npm-asset/bootstrap": "^4.3" }, "require-dev": { - "yiisoft/yii2-coding-standards": "~2.0", - "cweagans/composer-patches": "^1.7", - "phpunit/phpunit": "4.8.34" + "phpunit/phpunit": "^9.6", + "yiisoft/yii2-coding-standards": "~2.0" }, "repositories": [ { @@ -63,20 +63,10 @@ "extra": { "branch-alias": { "dev-master": "1.0.x-dev" - }, - "patches": { - "phpunit/phpunit-mock-objects": { - "Fix PHP 7 and 8 compatibility": "https://yiisoft.github.io/phpunit-patches/phpunit_mock_objects.patch" - }, - "phpunit/phpunit": { - "Fix PHP 7 compatibility": "https://yiisoft.github.io/phpunit-patches/phpunit_php7.patch", - "Fix PHP 8 compatibility": "https://yiisoft.github.io/phpunit-patches/phpunit_php8.patch" - } } }, "config": { "allow-plugins": { - "cweagans/composer-patches": true, "yiisoft/yii2-composer": true } } diff --git a/tests/AccordionTest.php b/tests/AccordionTest.php index 2ae672309..250b247e3 100644 --- a/tests/AccordionTest.php +++ b/tests/AccordionTest.php @@ -2,6 +2,7 @@ namespace yiiunit\extensions\bootstrap4; use yii\base\DynamicModel; +use yii\base\InvalidConfigException; use yii\bootstrap4\Accordion; use yii\widgets\ActiveForm; @@ -213,10 +214,11 @@ public function invalidItemsProvider() /** * @dataProvider invalidItemsProvider - * @expectedException \yii\base\InvalidConfigException */ public function testMissingLabel($items) { + $this->expectException(InvalidConfigException::class); + $this->expectExceptionMessage("The 'label' option is required."); Accordion::widget([ 'items' => $items, ]); @@ -276,12 +278,12 @@ public function testAutoCloseItems() $output = Accordion::widget([ 'items' => $items ]); - $this->assertContains('data-parent="', $output); + $this->assertStringContainsString('data-parent="', $output); $output = Accordion::widget([ 'autoCloseItems' => false, 'items' => $items ]); - $this->assertNotContains('data-parent="', $output); + $this->assertStringNotContainsString('data-parent="', $output); } /** @@ -309,8 +311,8 @@ public function testItemToggleTag() 'class' => 'custom-toggle', ], ]); - $this->assertContains('
assertNotContains('assertStringContainsString('
assertStringNotContainsString(' $items, @@ -319,8 +321,8 @@ public function testItemToggleTag() 'class' => ['widget' => 'custom-toggle'], ], ]); - $this->assertContains('
assertNotContains('collapse-toggle', $output); + $this->assertStringContainsString('
assertStringNotContainsString('collapse-toggle', $output); } /** @@ -345,7 +347,7 @@ public function testHeaderToggleTag() $output = Accordion::widget([ 'items' => $items, ]); - $this->assertContains('class="card-header">
', $output); + $this->assertStringContainsString('class="card-header">
', $output); // Custom settings $output = Accordion::widget([ @@ -355,8 +357,8 @@ public function testHeaderToggleTag() 'class' => 'm-0', ], ]); - $this->assertContains('class="card-header">

', $output); - $this->assertNotContains('

assertNotContains('class="mb-0"', $output); + $this->assertStringContainsString('class="card-header">

', $output); + $this->assertStringNotContainsString('

assertStringNotContainsString('class="mb-0"', $output); } } diff --git a/tests/ActiveFieldDefaultFormCheckTest.php b/tests/ActiveFieldDefaultFormCheckTest.php index 10dfde0b9..081699300 100644 --- a/tests/ActiveFieldDefaultFormCheckTest.php +++ b/tests/ActiveFieldDefaultFormCheckTest.php @@ -33,7 +33,7 @@ class ActiveFieldDefaultFormCheckTest extends TestCase */ private $_attributeName = 'attributeName'; - protected function setUp() + protected function setUp(): void { // dirty way to have Request object not throwing exception when running testHomeLinkNull() $_SERVER['SCRIPT_FILENAME'] = 'index.php'; @@ -240,8 +240,8 @@ public function testHorizontalLayout() HTML; - $this->assertContainsWithoutLE($expected, $out); - $this->assertContainsWithoutLE($expected2, $out); - $this->assertContainsWithoutLE($expected3, $out); + $this->assertStringContainsStringWithoutLE($expected, $out); + $this->assertStringContainsStringWithoutLE($expected2, $out); + $this->assertStringContainsStringWithoutLE($expected3, $out); } } diff --git a/tests/ActiveFieldTest.php b/tests/ActiveFieldTest.php index 147df8b46..e2134147c 100644 --- a/tests/ActiveFieldTest.php +++ b/tests/ActiveFieldTest.php @@ -26,7 +26,7 @@ class ActiveFieldTest extends TestCase */ private $attributeName = 'attributeName'; - protected function setUp() + protected function setUp(): void { // dirty way to have Request object not throwing exception when running testHomeLinkNull() $_SERVER['SCRIPT_FILENAME'] = "index.php"; @@ -270,7 +270,7 @@ public function testRadioListItemOptions() ] ])->render(); - $this->assertContains('data-attribute="test"', $content); + $this->assertStringContainsString('data-attribute="test"', $content); } /** @@ -287,7 +287,7 @@ public function testCheckboxListItemOptions() ] ])->render(); - $this->assertContains('data-attribute="test"', $content); + $this->assertStringContainsString('data-attribute="test"', $content); } /** diff --git a/tests/ActiveFormTest.php b/tests/ActiveFormTest.php index 48d7bf219..935b50861 100644 --- a/tests/ActiveFormTest.php +++ b/tests/ActiveFormTest.php @@ -15,7 +15,7 @@ class ActiveFormTest extends TestCase { - protected function setUp() + protected function setUp(): void { // dirty way to have Request object not throwing exception when running testFormNoRoleAttribute() $_SERVER['REQUEST_URI'] = "index.php"; @@ -47,7 +47,7 @@ public function testDefaultLayout() HTML; - $this->assertContainsWithoutLE($expected, $out); + $this->assertStringContainsStringWithoutLE($expected, $out); } public function testHorizontalLayout() @@ -118,9 +118,9 @@ public function testHorizontalLayout() HTML; - $this->assertContainsWithoutLE($expected, $out); - $this->assertContainsWithoutLE($expected2, $out); - $this->assertContainsWithoutLE($expected3, $out); + $this->assertStringContainsStringWithoutLE($expected, $out); + $this->assertStringContainsStringWithoutLE($expected2, $out); + $this->assertStringContainsStringWithoutLE($expected3, $out); } /** @@ -148,7 +148,7 @@ public function testHorizontalLayoutTemplateOverride() HTML; - $this->assertContainsWithoutLE($expected, $out); + $this->assertStringContainsStringWithoutLE($expected, $out); } public function testInlineLayout() @@ -202,10 +202,10 @@ public function testInlineLayout() HTML; - $this->assertContainsWithoutLE('
assertContainsWithoutLE($expected, $out); - $this->assertContainsWithoutLE($expected2, $out); - $this->assertContainsWithoutLE($expected3, $out); + $this->assertStringContainsStringWithoutLE('assertStringContainsStringWithoutLE($expected, $out); + $this->assertStringContainsStringWithoutLE($expected2, $out); + $this->assertStringContainsStringWithoutLE($expected3, $out); } public function testHintRendering() @@ -257,10 +257,10 @@ public function testHintRendering() HTML; - $this->assertContainsWithoutLE($expected, $out); - $this->assertContainsWithoutLE($expected2, $out); - $this->assertContainsWithoutLE($expected3, $out); - $this->assertContainsWithoutLE($expected4, $out); + $this->assertStringContainsStringWithoutLE($expected, $out); + $this->assertStringContainsStringWithoutLE($expected2, $out); + $this->assertStringContainsStringWithoutLE($expected3, $out); + $this->assertStringContainsStringWithoutLE($expected4, $out); } /** @@ -288,7 +288,7 @@ public function testInputTemplate() HTML; - $this->assertContainsWithoutLE($expected, $out); + $this->assertStringContainsStringWithoutLE($expected, $out); } /** @@ -298,7 +298,7 @@ public function testFormNoRoleAttribute() { $form = ActiveForm::widget(); - $this->assertNotContains('role="form"', $form); + $this->assertStringNotContainsString('role="form"', $form); } public function testErrorSummaryRendering() @@ -316,6 +316,6 @@ public function testErrorSummaryRendering() $out = ob_get_clean(); - $this->assertContainsWithoutLE('
assertStringContainsStringWithoutLE('
assertContains("$containerClass dropup btn-group", $out); + $this->assertStringContainsString("$containerClass dropup btn-group", $out); } public function testDirection() diff --git a/tests/CarouselTest.php b/tests/CarouselTest.php index e5cc27cc6..f3b2e5afc 100644 --- a/tests/CarouselTest.php +++ b/tests/CarouselTest.php @@ -90,6 +90,6 @@ public function testCrossfade() ] ]); - $this->assertContains('class="carousel slide carousel-fade"', $out); + $this->assertStringContainsString('class="carousel slide carousel-fade"', $out); } } diff --git a/tests/LinkPagerTest.php b/tests/LinkPagerTest.php index bbefae428..0ed52fc81 100644 --- a/tests/LinkPagerTest.php +++ b/tests/LinkPagerTest.php @@ -17,7 +17,7 @@ */ class LinkPagerTest extends TestCase { - protected function setUp() + protected function setUp(): void { parent::setUp(); $this->mockWebApplication([ @@ -51,22 +51,22 @@ public function testFirstLastPageLabels() 'firstPageLabel' => true, 'lastPageLabel' => true, ]); - $this->assertContains('
  • 1
  • ', $output); - $this->assertContains('
  • 25
  • ', $output); + $this->assertStringContainsString('
  • 1
  • ', $output); + $this->assertStringContainsString('
  • 25
  • ', $output); $output = LinkPager::widget([ 'pagination' => $pagination, 'firstPageLabel' => 'First', 'lastPageLabel' => 'Last', ]); - $this->assertContains('
  • First
  • ', $output); - $this->assertContains('
  • Last
  • ', $output); + $this->assertStringContainsString('
  • First
  • ', $output); + $this->assertStringContainsString('
  • Last
  • ', $output); $output = LinkPager::widget([ 'pagination' => $pagination, 'firstPageLabel' => false, 'lastPageLabel' => false, ]); - $this->assertNotContains('
  • ', $output); - $this->assertNotContains('
  • ', $output); + $this->assertStringNotContainsString('
  • ', $output); + $this->assertStringNotContainsString('
  • ', $output); } public function testDisabledPageElementOptions() @@ -75,7 +75,7 @@ public function testDisabledPageElementOptions() 'pagination' => $this->getPagination(0), 'disabledListItemSubTagOptions' => ['class' => ['foo-bar']], ]); - $this->assertContains('
  • 6
  • ', $output); + $this->assertStringContainsString('
  • 6
  • ', $output); $output = LinkPager::widget([ 'pagination' => $pagination, 'disableCurrentPageButton' => true, ]); - $this->assertContains('
  • 6
  • ', $output); + $this->assertStringContainsString('
  • 6
  • ', $output); } public function testOptionsWithTagOption() @@ -127,11 +127,11 @@ public function testLinkWrapOptions() 'class' => 'my-class', ], ]); - $this->assertContains( + $this->assertStringContainsString( '', $output ); - $this->assertContains( + $this->assertStringContainsString( '', $output ); diff --git a/tests/ModalTest.php b/tests/ModalTest.php index c16dca6b7..7f225bcdd 100644 --- a/tests/ModalTest.php +++ b/tests/ModalTest.php @@ -150,10 +150,10 @@ public function testTriggerButton() Modal::end(); $out = ob_get_clean(); - $this->assertContains('', + $this->assertStringContainsString('', $out); } - + public function testDialogOptions() { Modal::$counter = 0; @@ -180,7 +180,7 @@ public function testDialogOptions() $this->assertEqualsWithoutLE($expected, $out); } - + public function testCenterVertical() { Modal::$counter = 0; diff --git a/tests/NavBarTest.php b/tests/NavBarTest.php index 3f97ffefd..a74136938 100644 --- a/tests/NavBarTest.php +++ b/tests/NavBarTest.php @@ -44,7 +44,7 @@ public function testBrandImage() 'brandUrl' => '/', ]); - $this->assertContains('', $out); + $this->assertStringContainsString('', $out); } public function testBrandLink() @@ -54,7 +54,7 @@ public function testBrandLink() 'brandUrl' => false, ]); - $this->assertContains('Yii Framework', $out); + $this->assertStringContainsString('Yii Framework', $out); } public function testBrandSpan() @@ -64,7 +64,7 @@ public function testBrandSpan() 'brandUrl' => null, ]); - $this->assertContains('Yii Framework', $out); + $this->assertStringContainsString('Yii Framework', $out); } /** diff --git a/tests/NavTest.php b/tests/NavTest.php index 48bd2a331..16c1477c1 100644 --- a/tests/NavTest.php +++ b/tests/NavTest.php @@ -10,7 +10,7 @@ */ class NavTest extends TestCase { - protected function setUp() + protected function setUp(): void { $this->mockWebApplication([ 'components' => [ diff --git a/tests/TabsTest.php b/tests/TabsTest.php index a31fd2f8a..f6d21eb1a 100644 --- a/tests/TabsTest.php +++ b/tests/TabsTest.php @@ -28,7 +28,7 @@ public function testRoleTablist() ] ]); - $this->assertContainsWithoutLE('