aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/functional/fileupload_test.php97
-rw-r--r--tests/functional/fileupload_test_form.php62
-rw-r--r--tests/functional/fileupload_test_remote.php71
-rw-r--r--tests/uploads/fileupload_test.php31
4 files changed, 151 insertions, 110 deletions
diff --git a/tests/functional/fileupload_test.php b/tests/functional/fileupload_test.php
deleted file mode 100644
index 2abf81c457..0000000000
--- a/tests/functional/fileupload_test.php
+++ /dev/null
@@ -1,97 +0,0 @@
-<?php
-/**
- *
- * @package testing
- * @copyright (c) 2012 phpBB Group
- * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
- *
- */
-
-/**
- * @group functional
- */
-class phpbb_functional_fileupload_test extends phpbb_functional_test_case
-{
- public function test_form_upload()
- {
- $path = __DIR__ . '/fixtures/files/';
- $this->add_lang('posting');
- $this->login();
-
- // Test 1: Invalid extension
- $crawler = $this->request('GET', 'posting.php?mode=reply&f=2&t=1&sid=' . $this->sid);
- $form = $crawler->selectButton('add_file')->form();
- $form['fileupload']->upload($path . 'illegal-extension.bif');
- $crawler = $this->client->submit($form);
- $this->assertEquals('The extension bif is not allowed.', $crawler->filter('p.error')->text());
-
- // Test 2: Empty file
- $crawler = $this->request('GET', 'posting.php?mode=reply&f=2&t=1&sid=' . $this->sid);
- $form = $crawler->selectButton('add_file')->form();
- $form['fileupload']->upload($path . 'empty.png');
- $crawler = $this->client->submit($form);
- $this->assertEquals('The image file you tried to attach is invalid.', $crawler->filter('div#message p')->text());
-
- // Test 3: File too large
- // Cannot be tested by an admin account which this functional framework
- // provides
- /*$crawler = $this->request('GET', 'posting.php?mode=reply&f=2&t=1&sid=' . $this->sid);
- $form = $crawler->selectButton('add_file')->form();
- $form['fileupload']->upload($path . 'too-large.png');
- $crawler = $this->client->submit($form);
- $this->assertEquals(1, $crawler->filter('div#message')->count());*/
-
- // Test 4: Valid file
- $crawler = $this->request('GET', 'posting.php?mode=reply&f=2&t=1&sid=' . $this->sid);
- $form = $crawler->selectButton('add_file')->form();
- $form['fileupload']->upload($path . 'valid.jpg');
- $crawler = $this->client->submit($form);
- $this->assertEquals(0, $crawler->filter('p.error')->count());
- $this->assertContains($this->lang('POSTED_ATTACHMENTS'), $crawler->filter('#postform h3')->eq(1)->text());
- }
-
- public function test_remote_upload()
- {
- // Only doing this within the functional framework because we need a
- // URL
-
- // Global $config required by unique_id
- // Global $user required by fileupload::remote_upload
- global $config, $user;
-
- if (!is_array($config))
- {
- $config = array();
- }
-
- $config['rand_seed'] = '';
- $config['rand_seed_last_update'] = time() + 600;
-
- $user = new phpbb_mock_user();
- $user->lang = new phpbb_mock_lang();
-
- // Test 1: Invalid extension
- $upload = new fileupload('', array('jpg'), 100);
- $file = $upload->remote_upload('http://example.com/image.gif');
- $this->assertEquals('URL_INVALID', $file->error[0]);
-
- // Test 2: Non-existant file
- $upload = new fileupload('', array('jpg'), 100);
- $file = $upload->remote_upload('http://example.com/image.jpg');
- $this->assertEquals('EMPTY_REMOTE_DATA', $file->error[0]);
-
- // Test 3: File too large
- $upload = new fileupload('', array('gif'), 100);
- $file = $upload->remote_upload($this->root_url . 'styles/prosilver/theme/images/forum_read.gif');
- $this->assertEquals('WRONG_FILESIZE', $file->error[0]);
-
- // Test 4: Successful upload
- $upload = new fileupload('', array('gif'), 1000);
- $file = $upload->remote_upload($this->root_url . 'styles/prosilver/theme/images/forum_read.gif');
- $this->assertEquals(0, sizeof($file->error));
- $this->assertTrue(file_exists($file->filename));
-
- $config = array();
- $user = null;
- }
-}
diff --git a/tests/functional/fileupload_test_form.php b/tests/functional/fileupload_test_form.php
new file mode 100644
index 0000000000..48fa75ca4b
--- /dev/null
+++ b/tests/functional/fileupload_test_form.php
@@ -0,0 +1,62 @@
+<?php
+/**
+ *
+ * @package testing
+ * @copyright (c) 2012 phpBB Group
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
+ *
+ */
+
+/**
+ * @group functional
+ */
+class phpbb_functional_fileupload_test_form extends phpbb_functional_test_case
+{
+ private $path;
+
+ protected function setUp()
+ {
+ $this->path = __DIR__ . '/fixtures/files/';
+ $this->add_lang('posting');
+ $this->login();
+ }
+
+ public function test_empty_file()
+ {
+ $crawler = $this->request('GET', 'posting.php?mode=reply&f=2&t=1&sid=' . $this->sid);
+ $form = $crawler->selectButton('add_file')->form();
+ $form['fileupload']->upload($this->path . 'empty.png');
+ $crawler = $this->client->submit($form);
+ $this->assertEquals('The image file you tried to attach is invalid.', $crawler->filter('div#message p')->text());
+ }
+
+ public function test_invalid_extension()
+ {
+ $crawler = $this->request('GET', 'posting.php?mode=reply&f=2&t=1&sid=' . $this->sid);
+ $form = $crawler->selectButton('add_file')->form();
+ $form['fileupload']->upload($this->path . 'illegal-extension.bif');
+ $crawler = $this->client->submit($form);
+ $this->assertEquals('The extension bif is not allowed.', $crawler->filter('p.error')->text());
+ }
+
+ public function test_too_large()
+ {
+ // Cannot be tested by an admin account which this functional framework
+ // provides
+ /*$crawler = $this->request('GET', 'posting.php?mode=reply&f=2&t=1&sid=' . $this->sid);
+ $form = $crawler->selectButton('add_file')->form();
+ $form['fileupload']->upload($path . 'too-large.png');
+ $crawler = $this->client->submit($form);
+ $this->assertEquals(1, $crawler->filter('div#message')->count());*/
+ }
+
+ public function test_valid_file()
+ {
+ $crawler = $this->request('GET', 'posting.php?mode=reply&f=2&t=1&sid=' . $this->sid);
+ $form = $crawler->selectButton('add_file')->form();
+ $form['fileupload']->upload($this->path . 'valid.jpg');
+ $crawler = $this->client->submit($form);
+ $this->assertEquals(0, $crawler->filter('p.error')->count());
+ $this->assertContains($this->lang('POSTED_ATTACHMENTS'), $crawler->filter('#postform h3')->eq(1)->text());
+ }
+}
diff --git a/tests/functional/fileupload_test_remote.php b/tests/functional/fileupload_test_remote.php
new file mode 100644
index 0000000000..ac55a078d4
--- /dev/null
+++ b/tests/functional/fileupload_test_remote.php
@@ -0,0 +1,71 @@
+<?php
+/**
+ *
+ * @package testing
+ * @copyright (c) 2012 phpBB Group
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
+ *
+ */
+
+/**
+ * @group functional
+ */
+class phpbb_functional_fileupload_test_remote extends phpbb_functional_test_case
+{
+ protected function setUp()
+ {
+ // Only doing this within the functional framework because we need a
+ // URL
+
+ // Global $config required by unique_id
+ // Global $user required by fileupload::remote_upload
+ global $config, $user;
+
+ if (!is_array($config))
+ {
+ $config = array();
+ }
+
+ $config['rand_seed'] = '';
+ $config['rand_seed_last_update'] = time() + 600;
+
+ $user = new phpbb_mock_user();
+ $user->lang = new phpbb_mock_lang();
+ }
+
+ protected function tearDown()
+ {
+ global $config, $user;
+ $user = null;
+ $config = array();
+ }
+
+ public function test_invalid_extension()
+ {
+ $upload = new fileupload('', array('jpg'), 100);
+ $file = $upload->remote_upload('http://example.com/image.gif');
+ $this->assertEquals('URL_INVALID', $file->error[0]);
+ }
+
+ public function test_non_existant()
+ {
+ $upload = new fileupload('', array('jpg'), 100);
+ $file = $upload->remote_upload('http://example.com/image.jpg');
+ $this->assertEquals('EMPTY_REMOTE_DATA', $file->error[0]);
+ }
+
+ public function test_successful_upload()
+ {
+ $upload = new fileupload('', array('gif'), 1000);
+ $file = $upload->remote_upload($this->root_url . 'styles/prosilver/theme/images/forum_read.gif');
+ $this->assertEquals(0, sizeof($file->error));
+ $this->assertTrue(file_exists($file->filename));
+ }
+
+ public function test_too_large()
+ {
+ $upload = new fileupload('', array('gif'), 100);
+ $file = $upload->remote_upload($this->root_url . 'styles/prosilver/theme/images/forum_read.gif');
+ $this->assertEquals('WRONG_FILESIZE', $file->error[0]);
+ }
+}
diff --git a/tests/uploads/fileupload_test.php b/tests/uploads/fileupload_test.php
index d5cd3d891b..2b3c17b8e0 100644
--- a/tests/uploads/fileupload_test.php
+++ b/tests/uploads/fileupload_test.php
@@ -55,33 +55,38 @@ class phpbb_fileupload_test extends phpbb_test_case
$user = null;
}
- public function test_common_checks()
+ public function test_common_checks_invalid_extension()
{
- // Test 1: Valid file
- $upload = new fileupload('', array('jpg'), 1000);
+ $upload = new fileupload('', array('png'), 100);
$file = $this->gen_valid_filespec();
$upload->common_checks($file);
- $this->assertEquals(0, sizeof($file->error));
+ $this->assertEquals('DISALLOWED_EXTENSION', $file->error[0]);
+ }
- // Test 2: File too large
+ public function test_common_checks_invalid_filename()
+ {
$upload = new fileupload('', array('jpg'), 100);
$file = $this->gen_valid_filespec();
- $file->filesize = 1000;
+ $file->realname = 'invalid?';
$upload->common_checks($file);
- $this->assertEquals('WRONG_FILESIZE', $file->error[0]);
+ $this->assertEquals('INVALID_FILENAME', $file->error[0]);
+ }
- // Test 3: Invalid filename
+ public function test_common_checks_too_large()
+ {
$upload = new fileupload('', array('jpg'), 100);
$file = $this->gen_valid_filespec();
- $file->realname = 'invalid?';
+ $file->filesize = 1000;
$upload->common_checks($file);
- $this->assertEquals('INVALID_FILENAME', $file->error[0]);
+ $this->assertEquals('WRONG_FILESIZE', $file->error[0]);
+ }
- // Test 4: Invalid extension
- $upload = new fileupload('', array('png'), 100);
+ public function test_common_checks_valid_file()
+ {
+ $upload = new fileupload('', array('jpg'), 1000);
$file = $this->gen_valid_filespec();
$upload->common_checks($file);
- $this->assertEquals('DISALLOWED_EXTENSION', $file->error[0]);
+ $this->assertEquals(0, sizeof($file->error));
}
public function test_local_upload()