From 4698d20fb4f62830f12abf2d453c6357f1fb7ecf Mon Sep 17 00:00:00 2001 From: rxu Date: Tue, 22 Sep 2020 18:59:04 +0700 Subject: [PATCH] [ticket/16604] Do not test avatar upload directory permissions on Windows PHPBB3-16604 --- tests/functional/acp_avatar_settings_test.php | 44 ++++++++++--------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/tests/functional/acp_avatar_settings_test.php b/tests/functional/acp_avatar_settings_test.php index 58ba723532..254459ad33 100644 --- a/tests/functional/acp_avatar_settings_test.php +++ b/tests/functional/acp_avatar_settings_test.php @@ -53,27 +53,31 @@ class phpbb_functional_acp_avatar_settings_test extends phpbb_functional_test_ca $this->assertContainsLang('AVATAR_NO_UPLOAD_PATH', $crawler->filter('div[class="errorbox"] > p')->text()); // Test avatar upload path became not writable on the server afterwards - $crawler = self::request('GET', 'adm/index.php?i=acp_board&mode=avatar&sid=' . $this->sid); - $form = $crawler->selectButton($this->lang('SUBMIT'))->form(); - $values = $form->getValues(); - $avatar_upload_path = $values['config[avatar_path]']; - $filesystem = new \phpbb\filesystem\filesystem; - // Make the directory not writable - global $phpbb_root_path; - $filesystem->chmod($phpbb_root_path . $avatar_upload_path, 444); - $this->assertFalse($filesystem->is_writable($phpbb_root_path . $avatar_upload_path)); + // Unix tests only + if (!defined('PHP_WINDOWS_VERSION_MAJOR')) + { + $crawler = self::request('GET', 'adm/index.php?i=acp_board&mode=avatar&sid=' . $this->sid); + $form = $crawler->selectButton($this->lang('SUBMIT'))->form(); + $values = $form->getValues(); + $avatar_upload_path = $values['config[avatar_path]']; + $filesystem = new \phpbb\filesystem\filesystem; + // Make the directory not writable + global $phpbb_root_path; + $filesystem->chmod($phpbb_root_path . $avatar_upload_path, 444); + $this->assertFalse($filesystem->is_writable($phpbb_root_path . $avatar_upload_path)); - // Visit Avatar ACP settings again - warning should be displayed - $crawler = self::request('GET', 'adm/index.php?i=acp_board&mode=avatar&sid=' . $this->sid); - $this->assertContainsLang('WARNING', $crawler->filter('div[class="errorbox"] > h3')->text()); - $this->assertContainsLang('AVATAR_NO_UPLOAD_DIR', $crawler->filter('div[class="errorbox"] > p')->text()); - - // Restore default state - $filesystem->chmod($phpbb_root_path . $avatar_upload_path, 777); - $this->assertTrue($filesystem->is_writable($phpbb_root_path . $avatar_upload_path)); + // Visit Avatar ACP settings again - warning should be displayed + $crawler = self::request('GET', 'adm/index.php?i=acp_board&mode=avatar&sid=' . $this->sid); + $this->assertContainsLang('WARNING', $crawler->filter('div[class="errorbox"] > h3')->text()); + $this->assertContainsLang('AVATAR_NO_UPLOAD_DIR', $crawler->filter('div[class="errorbox"] > p')->text()); + + // Restore default state + $filesystem->chmod($phpbb_root_path . $avatar_upload_path, 777); + $this->assertTrue($filesystem->is_writable($phpbb_root_path . $avatar_upload_path)); - $crawler = self::request('GET', 'adm/index.php?i=acp_board&mode=avatar&sid=' . $this->sid); - $this->assertNotContainsLang('AVATAR_NO_UPLOAD_DIR', $this->get_content()); - $this->assertNotContainsLang('AVATAR_NO_UPLOAD_PATH', $this->get_content()); + $crawler = self::request('GET', 'adm/index.php?i=acp_board&mode=avatar&sid=' . $this->sid); + $this->assertNotContainsLang('AVATAR_NO_UPLOAD_DIR', $this->get_content()); + $this->assertNotContainsLang('AVATAR_NO_UPLOAD_PATH', $this->get_content()); + } } }