152 lines
6.0 KiB
PHP
Executable File
152 lines
6.0 KiB
PHP
Executable File
<?php
|
|
|
|
namespace OSS\Tests;
|
|
|
|
|
|
use OSS\Result\ListObjectsResult;
|
|
use OSS\Http\ResponseCore;
|
|
|
|
class ListObjectsResultTest extends \PHPUnit_Framework_TestCase
|
|
{
|
|
|
|
private $validXml1 = <<<BBBB
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
<ListBucketResult>
|
|
<Name>testbucket-hf</Name>
|
|
<Prefix></Prefix>
|
|
<Marker></Marker>
|
|
<MaxKeys>1000</MaxKeys>
|
|
<Delimiter>/</Delimiter>
|
|
<IsTruncated>false</IsTruncated>
|
|
<CommonPrefixes>
|
|
<Prefix>oss-php-sdk-test/</Prefix>
|
|
</CommonPrefixes>
|
|
<CommonPrefixes>
|
|
<Prefix>test/</Prefix>
|
|
</CommonPrefixes>
|
|
</ListBucketResult>
|
|
BBBB;
|
|
|
|
private $validXml2 = <<<BBBB
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
<ListBucketResult>
|
|
<Name>testbucket-hf</Name>
|
|
<Prefix>oss-php-sdk-test/</Prefix>
|
|
<Marker>xx</Marker>
|
|
<MaxKeys>1000</MaxKeys>
|
|
<Delimiter>/</Delimiter>
|
|
<IsTruncated>false</IsTruncated>
|
|
<Contents>
|
|
<Key>oss-php-sdk-test/upload-test-object-name.txt</Key>
|
|
<LastModified>2015-11-18T03:36:00.000Z</LastModified>
|
|
<ETag>"89B9E567E7EB8815F2F7D41851F9A2CD"</ETag>
|
|
<Type>Normal</Type>
|
|
<Size>13115</Size>
|
|
<StorageClass>Standard</StorageClass>
|
|
<Owner>
|
|
<ID>cname_user</ID>
|
|
<DisplayName>cname_user</DisplayName>
|
|
</Owner>
|
|
</Contents>
|
|
</ListBucketResult>
|
|
BBBB;
|
|
|
|
private $validXmlWithEncodedKey = <<<BBBB
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
<ListBucketResult>
|
|
<Name>testbucket-hf</Name>
|
|
<EncodingType>url</EncodingType>
|
|
<Prefix>php%2Fprefix</Prefix>
|
|
<Marker>php%2Fmarker</Marker>
|
|
<NextMarker>php%2Fnext-marker</NextMarker>
|
|
<MaxKeys>1000</MaxKeys>
|
|
<Delimiter>%2F</Delimiter>
|
|
<IsTruncated>true</IsTruncated>
|
|
<Contents>
|
|
<Key>php/a%2Bb</Key>
|
|
<LastModified>2015-11-18T03:36:00.000Z</LastModified>
|
|
<ETag>"89B9E567E7EB8815F2F7D41851F9A2CD"</ETag>
|
|
<Type>Normal</Type>
|
|
<Size>13115</Size>
|
|
<StorageClass>Standard</StorageClass>
|
|
<Owner>
|
|
<ID>cname_user</ID>
|
|
<DisplayName>cname_user</DisplayName>
|
|
</Owner>
|
|
</Contents>
|
|
</ListBucketResult>
|
|
BBBB;
|
|
|
|
public function testParseValidXml1()
|
|
{
|
|
$response = new ResponseCore(array(), $this->validXml1, 200);
|
|
$result = new ListObjectsResult($response);
|
|
$this->assertTrue($result->isOK());
|
|
$this->assertNotNull($result->getData());
|
|
$this->assertNotNull($result->getRawResponse());
|
|
$objectListInfo = $result->getData();
|
|
$this->assertEquals(2, count($objectListInfo->getPrefixList()));
|
|
$this->assertEquals(0, count($objectListInfo->getObjectList()));
|
|
$this->assertEquals('testbucket-hf', $objectListInfo->getBucketName());
|
|
$this->assertEquals('', $objectListInfo->getPrefix());
|
|
$this->assertEquals('', $objectListInfo->getMarker());
|
|
$this->assertEquals(1000, $objectListInfo->getMaxKeys());
|
|
$this->assertEquals('/', $objectListInfo->getDelimiter());
|
|
$this->assertEquals('false', $objectListInfo->getIsTruncated());
|
|
$prefixes = $objectListInfo->getPrefixList();
|
|
$this->assertEquals('oss-php-sdk-test/', $prefixes[0]->getPrefix());
|
|
$this->assertEquals('test/', $prefixes[1]->getPrefix());
|
|
}
|
|
|
|
public function testParseValidXml2()
|
|
{
|
|
$response = new ResponseCore(array(), $this->validXml2, 200);
|
|
$result = new ListObjectsResult($response);
|
|
$this->assertTrue($result->isOK());
|
|
$this->assertNotNull($result->getData());
|
|
$this->assertNotNull($result->getRawResponse());
|
|
$objectListInfo = $result->getData();
|
|
$this->assertEquals(0, count($objectListInfo->getPrefixList()));
|
|
$this->assertEquals(1, count($objectListInfo->getObjectList()));
|
|
$this->assertEquals('testbucket-hf', $objectListInfo->getBucketName());
|
|
$this->assertEquals('oss-php-sdk-test/', $objectListInfo->getPrefix());
|
|
$this->assertEquals('xx', $objectListInfo->getMarker());
|
|
$this->assertEquals(1000, $objectListInfo->getMaxKeys());
|
|
$this->assertEquals('/', $objectListInfo->getDelimiter());
|
|
$this->assertEquals('false', $objectListInfo->getIsTruncated());
|
|
$objects = $objectListInfo->getObjectList();
|
|
$this->assertEquals('oss-php-sdk-test/upload-test-object-name.txt', $objects[0]->getKey());
|
|
$this->assertEquals('2015-11-18T03:36:00.000Z', $objects[0]->getLastModified());
|
|
$this->assertEquals('"89B9E567E7EB8815F2F7D41851F9A2CD"', $objects[0]->getETag());
|
|
$this->assertEquals('Normal', $objects[0]->getType());
|
|
$this->assertEquals(13115, $objects[0]->getSize());
|
|
$this->assertEquals('Standard', $objects[0]->getStorageClass());
|
|
}
|
|
|
|
public function testParseValidXmlWithEncodedKey()
|
|
{
|
|
$response = new ResponseCore(array(), $this->validXmlWithEncodedKey, 200);
|
|
$result = new ListObjectsResult($response);
|
|
$this->assertTrue($result->isOK());
|
|
$this->assertNotNull($result->getData());
|
|
$this->assertNotNull($result->getRawResponse());
|
|
$objectListInfo = $result->getData();
|
|
$this->assertEquals(0, count($objectListInfo->getPrefixList()));
|
|
$this->assertEquals(1, count($objectListInfo->getObjectList()));
|
|
$this->assertEquals('testbucket-hf', $objectListInfo->getBucketName());
|
|
$this->assertEquals('php/prefix', $objectListInfo->getPrefix());
|
|
$this->assertEquals('php/marker', $objectListInfo->getMarker());
|
|
$this->assertEquals('php/next-marker', $objectListInfo->getNextMarker());
|
|
$this->assertEquals(1000, $objectListInfo->getMaxKeys());
|
|
$this->assertEquals('/', $objectListInfo->getDelimiter());
|
|
$this->assertEquals('true', $objectListInfo->getIsTruncated());
|
|
$objects = $objectListInfo->getObjectList();
|
|
$this->assertEquals('php/a+b', $objects[0]->getKey());
|
|
$this->assertEquals('2015-11-18T03:36:00.000Z', $objects[0]->getLastModified());
|
|
$this->assertEquals('"89B9E567E7EB8815F2F7D41851F9A2CD"', $objects[0]->getETag());
|
|
$this->assertEquals('Normal', $objects[0]->getType());
|
|
$this->assertEquals(13115, $objects[0]->getSize());
|
|
$this->assertEquals('Standard', $objects[0]->getStorageClass());
|
|
}
|
|
}
|