diff options
Diffstat (limited to 'modules/upload/upload.test')
-rw-r--r-- | modules/upload/upload.test | 347 |
1 files changed, 0 insertions, 347 deletions
diff --git a/modules/upload/upload.test b/modules/upload/upload.test index 285ce37f5..51f9cc81e 100644 --- a/modules/upload/upload.test +++ b/modules/upload/upload.test @@ -201,350 +201,3 @@ class UploadTestCase extends DrupalWebTestCase { return NULL; } } - -class UploadPictureTestCase extends DrupalWebTestCase { - function getInfo() { - return array( - 'name' => t('Upload user picture'), - 'description' => t('Assure that dimension check, extension check and image scaling work as designed.'), - 'group' => t('Upload') - ); - } - - /* - * Test if directories specified in settings exist in filesystem - */ - function testDirectories() { - // test if filepath is proper - $file_dir = file_directory_path(); - $picture_dir = variable_get('user_picture_path', 'pictures'); - $file_check = file_check_directory($file_dir, FILE_CREATE_DIRECTORY, 'file_directory_path'); - $picture_path = $file_dir . '/' . $picture_dir; - - $pic_check = file_check_directory($picture_path, FILE_CREATE_DIRECTORY, 'user_picture_path'); - // check directories - //$this->assertTrue($file_check,"The directory $file_dir doesn't exist or cannot be created."); - //$this->assertTrue($pic_check,"The directory $picture_path doesn't exist or cannot be created."); - $this->_directory_test = is_writable($picture_path); - $this->assertTrue($this->_directory_test, "The directory $picture_path doesn't exist or is not writable. Further tests won't be made."); - } - - function testNoPicture() { - $old_pic_set = variable_get('user_pictures', 0); - variable_set('user_pictures', 1); - - /* Prepare a user to do the stuff */ - $user = $this->drupalCreateUser(array('access content')); - $this->drupalLogin($user); - - // not a image - //$img_path = realpath(drupal_get_path('module', 'simpletest'). "/tests/functional/upload.test"); - $img_path = realpath(drupal_get_path('module', 'simpletest'). "/files/html-1.txt"); - $edit = array('files[picture_upload]' => $img_path); - $this->drupalPost('user/' . $user->uid. '/edit', $edit, t('Save')); - $this->assertRaw(t('The selected file %file could not be uploaded. Only JPEG, PNG and GIF images are allowed.', array('%file' => basename($img_path))), 'The uploaded file was not an image.'); - variable_set('user_pictures', $old_pic_set); - - // do we have to check users roles? - // delete test user and roles - - } - - /* - * Do one test if ImageGDToolkit is installed - */ - - /* - * Do the test: - * GD Toolkit is installed - * Picture has invalid dimension - * - * results: The image should be uploaded because ImageGDToolkit resizes the picture - */ - - function testWithGDinvalidDimension() { - if ($this->_directory_test) - if (image_get_toolkit()) { - - // PREPARE: - $old_pic_set = variable_get('user_pictures', 0); - variable_set('user_pictures', 1); - - /* Prepare a user to do the stuff */ - $user = $this->drupalCreateUser(array('access content')); - $this->drupalLogin($user); - - // changing actual setting; - $old_dim = variable_get('user_picture_dimensions', '85x85'); - $old_size = variable_get('user_picture_file_size', '30'); - //$img_path = realpath(drupal_get_path('module', 'simpletest'). "/tests/files/image-2.jpg"); - $img_path = realpath(drupal_get_path('module', 'simpletest'). "/files/image-2.jpg"); - $info = image_get_info($img_path); - - // set new variables; - $test_size = floor(filesize($img_path) / 1000) + 1; - $test_dim = ($info['width'] - 10) . 'x' . ($info['height'] - 10); - variable_set('user_picture_dimensions', $test_dim); - variable_set('user_picture_file_size', $test_size); - - // Create pictures folder - $file_dir = file_directory_path(); - $picture_dir = variable_get('user_picture_path', 'pictures'); - $picture_path = $file_dir . '/' . $picture_dir; - $pic_check = file_check_directory($picture_path, FILE_CREATE_DIRECTORY, 'user_picture_path'); - - // TEST: - $edit = array('files[picture_upload]' => $img_path); - $this->drupalPost('user/' . $user->uid. '/edit', $edit, t('Save')); - $picture_dir = variable_get('user_picture_path', 'pictures'); - $picture = $picture_dir . '/picture-' . $user->uid. '.jpg'; - - // get full url to the user's image - $picture_url = file_create_url($picture); - $picture_path = file_create_path($picture); - - // check if image is displayed in user's profile page - $this->assertRaw($picture_url, "Image is displayed in user's profile page"); - - // check if file is located in proper directory - $this->assertTrue(is_file($picture_path), "File is located in proper directory"); - - // RESTORING: - variable_set('user_picture_file_size', $old_size); - variable_set('user_picture_dimensions', $old_dim); - - variable_set('user_pictures', $old_pic_set); - } - - } - - /* - * Do the test: - * GD Toolkit is installed - * Picture has invalid size - * - * results: The image should be uploaded because ImageGDToolkit resizes the picture - */ - - function tstWithGDinvalidSize() { - if ($this->_directory_test) - if (image_get_toolkit()) { - // PREPARE: - $old_pic_set = variable_get('user_pictures', 0); - variable_set('user_pictures', 1); - - /* Prepare a user to do the stuff */ - $user = $this->drupalCreateUser(array('access content')); - $this->drupalLogin($user); - - // changing actual setting; - $old_dim = variable_get('user_picture_dimensions', '85x85'); - $old_size = variable_get('user_picture_file_size', '30'); - $files = $this->drupalGetTestFiles('image'); - $file = current($files); - $img_path = realpath($file->filename); - $info = image_get_info($img_path); - // set new variables; - - $test_dim = ($info['width'] + 10) . 'x' . ($info['height'] + 10); - $test_size = filesize($img_path); - variable_set('user_picture_dimensions', $test_dim); - variable_set('user_picture_file_size', $test_size); - - // Create pictures folder - $file_dir = file_directory_path(); - $picture_dir = variable_get('user_picture_path', 'pictures'); - $picture_path = $file_dir . '/' . $picture_dir; - $pic_check = file_check_directory($picture_path, FILE_CREATE_DIRECTORY, 'user_picture_path'); - - // TEST: - $edit = array('files[picture_upload]' => $img_path); - $this->drupalPost('user/' . $user->uid. '/edit', $edit, t('Save')); - $picture_dir = variable_get('user_picture_path', 'pictures'); - $picture = $picture_dir . '/picture-' . $user->uid. '.png'; - - // get full url to the user's image - $picture_url = file_create_url($picture); - $picture_path = file_create_path($picture); - - // check if image is displayed in user's profile page - $this->assertRaw($picture_url, "Image is displayed in user's profile page"); - - // check if file is located in proper directory - $this->assertTrue(is_file($picture_path), "File is located in proper directory"); - - // RESTORING: - variable_set('user_picture_file_size', $old_size); - variable_set('user_picture_dimensions', $old_dim); - - variable_set('user_pictures', $old_pic_set); - } - } - - /* - * Do the test: - * GD Toolkit is not installed - * Picture has invalid size - * - * results: The image shouldn't be uploaded - */ - function tstWithoutGDinvalidDimension() { - if ($this->_directory_test) - if (!image_get_toolkit()) { - // PREPARE: - $old_pic_set = variable_get('user_pictures', 0); - variable_set('user_pictures', 1); - - /* Prepare a user to do the stuff */ - $user = $this->drupalCreateUser(array('access content')); - $this->drupalLogin($user); - - // changing actual setting; - $old_dim = variable_get('user_picture_dimensions', '85x85'); - $old_size = variable_get('user_picture_file_size', '30'); - $img_path = realpath(drupal_get_path('module', 'simpletest'). "/files/image-2.jpg"); - $info = image_get_info($img_path); - // set new variables; - $test_size = floor(filesize($img_path) / 1000) + 1; - $test_dim = ($info['width'] - 10) . 'x' . ($info['height'] - 10); - variable_set('user_picture_dimensions', $test_dim); - variable_set('user_picture_file_size', $test_size); - - // Create pictures folder - $file_dir = file_directory_path(); - $picture_dir = variable_get('user_picture_path', 'pictures'); - $picture_path = $file_dir . '/' . $picture_dir; - $pic_check = file_check_directory($picture_path, FILE_CREATE_DIRECTORY, 'user_picture_path'); - - // TEST: - $edit = array('picture' => $img_path); - $this->drupalPost('user/' . $user->uid. '/edit', $edit, t('Save')); - $text = t('The uploaded image is too large; the maximum dimensions are %dimensions pixels.', array('%dimensions' => variable_get('user_picture_dimensions', '85x85'))); - $this->assertText($text, 'Checking response on invalid image (dimensions).'); - - // check if file is not uploaded - $file_dir = variable_get('file_directory_path', 'files'); - $picture_dir = variable_get('user_picture_path', 'pictures'); - $pic_path = $file_dir . '/' . $picture_dir . '/picture-' . $user->uid. '.jpg'; - $this->assertFalse(is_file($pic_path), "File is not uploaded"); - - // restore variables; - variable_set('user_picture_file_size', $old_size); - variable_set('user_picture_dimensions', $old_dim); - - variable_set('user_pictures', $old_pic_set); - } - } - - /* - * Do the test: - * GD Toolkit is not installed - * Picture has invalid size - * - * results: The image shouldn't be uploaded - */ - function tstWithoutGDinvalidSize() { - if ($this->_directory_test) - if (!image_get_toolkit()) { - // PREPARE: - $old_pic_set = variable_get('user_pictures', 0); - variable_set('user_pictures', 1); - - /* Prepare a user to do the stuff */ - $user = $this->drupalCreateUser(array('access content')); - $this->drupalLogin($user); - - // changing actual setting; - $old_dim = variable_get('user_picture_dimensions', '85x85'); - $old_size = variable_get('user_picture_file_size', '30'); - //$img_path = realpath("modules/tests/image-2.jpg"); - $img_path = realpath(drupal_get_path('module', 'simpletest'). "/files/image-2.jpg"); - $info = image_get_info($img_path); - // invalid size - // restore one and set another - $test_dim = ($info['width'] + 10) . 'x' . ($info['height'] + 10); - $test_size = floor(filesize($img_path) / 1000) - 1; - variable_set('user_picture_dimensions', $test_dim); - variable_set('user_picture_file_size', $test_size); - - $edit = array('picture' => $img_path); - $this->drupalPost('user/' . $user->uid. '/edit', $edit, t('Save')); - $text = t('The uploaded image is too large; the maximum file size is %size kB.', array('%size' => variable_get('user_picture_file_size', '30'))); - $this->assertText($text, 'Checking response on invalid image size.'); - - // check if file is not uploaded - $file_dir = variable_get('file_directory_path', 'files'); - $picture_dir = variable_get('user_picture_path', 'pictures'); - $pic_path = $file_dir . '/' . $picture_dir . '/picture-' . $user->uid. '.jpg'; - $this->assertFalse(is_file($pic_path), "File is not uploaded"); - // restore variables; - variable_set('user_picture_file_size', $old_size); - variable_set('user_picture_dimensions', $old_dim); - - variable_set('user_pictures', $old_pic_set); - } - } - - /* - * Do the test: - * Picture is valid (proper size and dimension) - * - * results: The image should be uploaded - */ - function tstPictureIsValid() { - if ($this->_directory_test) { - // PREPARE: - $old_pic_set = variable_get('user_pictures', 0); - variable_set('user_pictures', 1); - - /* Prepare a user to do the stuff */ - $user = $this->drupalCreateUser(array('access content')); - $this->drupalLogin($user); - - // changing actual setting; - $old_dim = variable_get('user_picture_dimensions', '85x85'); - $old_size = variable_get('user_picture_file_size', '30'); - $img_path = realpath(drupal_get_path('module', 'simpletest'). "/files/image-2.jpg"); - $info = image_get_info($img_path); - - // valid size & dimensions - // restore one and set another - $test_dim = ($info['width'] + 10) . 'x' . ($info['height'] + 10); - $test_size = floor(filesize($img_path) / 1000) + 1; - variable_set('user_picture_dimensions', $test_dim); - variable_set('user_picture_file_size', $test_size); - - // Create pictures folder - $file_dir = file_directory_path(); - $picture_dir = variable_get('user_picture_path', 'pictures'); - $picture_path = $file_dir . '/' . $picture_dir; - $pic_check = file_check_directory($picture_path, FILE_CREATE_DIRECTORY, 'user_picture_path'); - - // TEST: - $edit = array('files[picture_upload]' => $img_path); - $this->drupalPost('user/' . $user->uid. '/edit', $edit, t('Save')); - $picture_dir = variable_get('user_picture_path', 'pictures'); - $pic_path = file_directory_path() . '/' . $picture_dir . '/picture-' . $user->uid. '.jpg'; - - // get full url to the user's image - $picture = file_create_url($pic_path); - - // check if image is displayed in user's profile page - $content = $this->drupalGetContent(); - - $this->assertTrue(strpos($content, $picture), "Image is displayed in user's profile page"); - - // check if file is located in proper directory - $this->assertTrue(is_file($pic_path), "File is located in proper directory"); - - // RESTORING: - variable_set('user_picture_file_size', $old_size); - variable_set('user_picture_dimensions', $old_dim); - - variable_set('user_pictures', $old_pic_set); - - // DELETING UPLOADED PIC - file_delete($pic_path); - } - } -} |