Commit 37e30149 authored by Joe Hoyle's avatar Joe Hoyle
Browse files

More tests for the streamwrapper

parent df524d1e
Loading
Loading
Loading
Loading
+17 −21
Original line number Diff line number Diff line
@@ -8,14 +8,22 @@ class Test_S3_Uploads_Stream_Wrapper extends WP_UnitTestCase {

	}

	public function tearDown() {
		stream_wrapper_unregister( 's3' );
		S3_Uploads::get_instance()->register_stream_wrapper();
	}

	public function test_stream_wrapper_is_registered() {
		$this->assertTrue( in_array( 's3', stream_get_wrappers() ) );
	}

	public function test_copy_via_stream_wrapper() {

		$result = copy( dirname( __FILE__ ) . '/data/canola.jpg', 's3://' . S3_UPLOADS_BUCKET . '/canola.jpg' );
		$local_path = dirname( __FILE__ ) . '/data/canola.jpg';
		$remote_path = 's3://' . S3_UPLOADS_BUCKET . '/canola.jpg';
		$result = copy( $local_path, $remote_path );
		$this->assertTrue( $result );
		$this->assertEquals( file_get_contents( $local_path ), file_get_contents( $remote_path ) );
	}

	public function test_rename_via_stream_wrapper() {
@@ -35,13 +43,6 @@ class Test_S3_Uploads_Stream_Wrapper extends WP_UnitTestCase {
	}

	public function test_copy_via_stream_wrapper_fails_on_invalid_permission() {
		stream_wrapper_unregister( 's3' );
		$params = array( 'key' => S3_UPLOADS_KEY, 'secret' => S3_UPLOADS_SECRET );
		$s3 = Aws\Common\Aws::factory( $params )->get( 's3' );

		S3_Uploads_Stream_Wrapper::register( $s3 );
		stream_context_set_option( stream_context_get_default(), 's3', 'ACL', Aws\S3\Enum\CannedAcl::PUBLIC_READ );

		$bucket_root = strtok( S3_UPLOADS_BUCKET, '/' );
		$result = @copy( dirname( __FILE__ ) . '/data/canola.jpg', 's3://' . $bucket_root . '/canola.jpg' );

@@ -50,13 +51,6 @@ class Test_S3_Uploads_Stream_Wrapper extends WP_UnitTestCase {

	public function test_rename_via_stream_wrapper_fails_on_invalid_permission() {

		stream_wrapper_unregister( 's3' );
		$params = array( 'key' => S3_UPLOADS_KEY, 'secret' => S3_UPLOADS_SECRET );
		$s3 = Aws\Common\Aws::factory( $params )->get( 's3' );

		S3_Uploads_Stream_Wrapper::register( $s3 );
		stream_context_set_option( stream_context_get_default(), 's3', 'ACL', Aws\S3\Enum\CannedAcl::PUBLIC_READ );

		copy( dirname( __FILE__ ) . '/data/canola.jpg', 's3://' . S3_UPLOADS_BUCKET . '/canola.jpg' );
		$bucket_root = strtok( S3_UPLOADS_BUCKET, '/' );
		$result = @rename( 's3://' . S3_UPLOADS_BUCKET . '/canola.jpg', 's3://' . $bucket_root . '/canola.jpg' );
@@ -72,12 +66,8 @@ class Test_S3_Uploads_Stream_Wrapper extends WP_UnitTestCase {

		stream_wrapper_unregister( 's3' );

		// incorrect secret so we'll ato fail if any writing / reading is attempted
		$params = array( 'key' => S3_UPLOADS_KEY, 'secret' => 123 );
		$s3 = Aws\Common\Aws::factory( $params )->get( 's3' );

		S3_Uploads_Stream_Wrapper::register( $s3 );
		stream_context_set_option( stream_context_get_default(), 's3', 'ACL', Aws\S3\Enum\CannedAcl::PUBLIC_READ );
		$uploads = new S3_Uploads( S3_UPLOADS_BUCKET, S3_UPLOADS_KEY, '123', S3_UPLOADS_REGION );
		$uploads->register_stream_wrapper();

		$bucket_root = strtok( S3_UPLOADS_BUCKET, '/' );

@@ -88,4 +78,10 @@ class Test_S3_Uploads_Stream_Wrapper extends WP_UnitTestCase {
		$result = is_dir( 's3://' . $bucket_root . '/some_dir' );
		$this->assertTrue( $result );
	}

	public function get_file_exists_via_stream_wrapper() {
		copy( dirname( __FILE__ ) . '/data/canola.jpg', 's3://' . S3_UPLOADS_BUCKET . '/canola.jpg' );
		$this->assertTrue( file_exists( 's3://' . S3_UPLOADS_BUCKET . '/canola.jpg' ) );
		$this->assertFalse( file_exists( 's3://' . S3_UPLOADS_BUCKET . '/canola-missing.jpg' ) );
	}
}
 No newline at end of file