From 2bee8312ab30dfe21453e41d4e2a73becc5c9c32 Mon Sep 17 00:00:00 2001 From: rxu Date: Sun, 17 Jan 2021 12:12:41 +0700 Subject: [PATCH 1/2] [ticket/16650] Add simple functional test PHPBB3-16650 --- .github/workflows/tests.yml | 4 ++++ tests/functional/extension_acp_test.php | 25 +++++++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 31055d28e0..34a7181b1e 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -507,6 +507,10 @@ jobs: icacls "${env:GITHUB_WORKSPACE}\phpBB\cache" /grant Users:F /T icacls "${env:GITHUB_WORKSPACE}\phpBB\files" /grant Users:F /T icacls "${env:GITHUB_WORKSPACE}\phpBB\store" /grant Users:F /T + icacls "${env:GITHUB_WORKSPACE}\phpBB\ext" /grant Users:F /T + icacls "${env:GITHUB_WORKSPACE}\phpBB\vendor-ext" /grant Users:F /T + icacls "${env:GITHUB_WORKSPACE}\phpBB\composer-ext.json" /grant Users:F /T + icacls "${env:GITHUB_WORKSPACE}\phpBB\composer-ext.lock" /grant Users:F /T icacls "${env:GITHUB_WORKSPACE}\phpBB\images\avatars\upload" /grant Users:F /T $accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule("IIS_IUSRS", "FullControl", "ContainerInherit,ObjectInherit", "None", "Allow") $acl = Get-ACL "${env:TEMP_DIR}" diff --git a/tests/functional/extension_acp_test.php b/tests/functional/extension_acp_test.php index 4ad2cb0e3f..fad457e0cb 100644 --- a/tests/functional/extension_acp_test.php +++ b/tests/functional/extension_acp_test.php @@ -244,4 +244,29 @@ class phpbb_functional_extension_acp_test extends phpbb_functional_test_case $this->install_ext('vendor/moo'); $this->uninstall_ext('vendor/moo'); } + + public function test_extensions_catalog() + { + // Access extensions catalog main page + $crawler = self::request('GET', 'adm/index.php?i=acp_extensions&mode=catalog&sid=' . $this->sid); + $this->assertContainsLang('ACP_EXTENSIONS_CATALOG', $this->get_content()); + + $this->assertContainsLang('BROWSE_EXTENSIONS_DATABASE', $crawler->filter('fieldset[class="quick quick-left"] > span > a')->eq(0)->text()); + $this->assertContainsLang('SETTINGS', $crawler->filter('fieldset[class="quick quick-left"] > span > a')->eq(1)->text()); + + $form = $crawler->selectButton('Submit')->form(); + $form['minimum_stability']->select('dev'); + $crawler = self::submit($form); + $this->assertContainsLang('CONFIG_UPDATED', $crawler->filter('div[class="successbox"] > p')->text()); + + // Revisit extensions catalog main page after configuration change + $crawler = self::request('GET', 'adm/index.php?i=acp_extensions&mode=catalog&sid=' . $this->sid); + $this->assertContainsLang('ACP_EXTENSIONS_CATALOG', $this->get_content()); + + // Ensure catalog has 20 records (by default) in extensions list + $records_per_page = 20; + $this->assertEquals($records_per_page, $crawler->filter('tbody > tr > td > strong')->count()); + $this->assertNotEmpty($crawler->filter('tbody > tr > td > strong')->eq(0)->text()); + $this->assertNotEmpty($crawler->filter('tbody > tr > td > strong')->eq($records_per_page - 1)->text()); + } } From a368b0f26d79ca15f837ffca930ba1569d0da7f4 Mon Sep 17 00:00:00 2001 From: rxu Date: Tue, 19 Jan 2021 00:43:07 +0700 Subject: [PATCH 2/2] [ticket/16650] Adjust catalog entries assertion PHPBB3-16650 --- tests/functional/extension_acp_test.php | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/tests/functional/extension_acp_test.php b/tests/functional/extension_acp_test.php index fad457e0cb..932e28f86e 100644 --- a/tests/functional/extension_acp_test.php +++ b/tests/functional/extension_acp_test.php @@ -263,10 +263,7 @@ class phpbb_functional_extension_acp_test extends phpbb_functional_test_case $crawler = self::request('GET', 'adm/index.php?i=acp_extensions&mode=catalog&sid=' . $this->sid); $this->assertContainsLang('ACP_EXTENSIONS_CATALOG', $this->get_content()); - // Ensure catalog has 20 records (by default) in extensions list - $records_per_page = 20; - $this->assertEquals($records_per_page, $crawler->filter('tbody > tr > td > strong')->count()); - $this->assertNotEmpty($crawler->filter('tbody > tr > td > strong')->eq(0)->text()); - $this->assertNotEmpty($crawler->filter('tbody > tr > td > strong')->eq($records_per_page - 1)->text()); + // Ensure catalog has any records in extensions list + $this->assertGreaterThan(0, $crawler->filter('tbody > tr > td > strong')->count()); } }