You've already forked qlg.tsgz.moe
addons
app_download_files
extend
hyhproject
mobile
oss
static
thinkphp
upload
vendor
5ini99
composer
oss-sdk
samples
src
tests
OSS
Tests
AclResultTest.php
BodyResultTest.php
BucketCnameTest.php
BucketInfoTest.php
BucketLiveChannelTest.php
CallbackTest.php
CnameConfigTest.php
Common.php
ContentTypeTest.php
CopyObjectResult.php
CorsConfigTest.php
ExistResultTest.php
GetCorsResultTest.php
GetLifecycleResultTest.php
GetLoggingResultTest.php
GetRefererResultTest.php
GetWebsiteResultTest.php
HeaderResultTest.php
HttpTest.php
InitiateMultipartUploadResultTest.php
LifecycleConfigTest.php
ListBucketsResultTest.php
ListMultipartUploadResultTest.php
ListObjectsResultTest.php
ListPartsResultTest.php
LiveChannelXmlTest.php
LoggingConfigTest.php
MimeTypesTest.php
ObjectAclTest.php
OssClientBucketCorsTest.php
OssClientBucketLifecycleTest.php
OssClientBucketLoggingTest.php
OssClientBucketRefererTest.php
OssClientBucketStorageCapacityTest.php
OssClientBucketTest.php
OssClientBucketWebsiteTest.php
OssClientImageTest.php
OssClientMultipartUploadTest.php
OssClientObjectTest.php
OssClientRestoreObjectTest.php
OssClientSignatureTest.php
OssClientTest.php
OssExceptionTest.php
OssUtilTest.php
PutSetDeleteResultTest.php
RefererConfigTest.php
StorageCapacityTest.php
SymlinkTest.php
TestOssClientBase.php
UploadPartResultTest.php
WebsiteConfigTest.php
.coveralls.yml
.gitignore
.travis.yml
CHANGELOG.md
LICENSE.md
README-CN.md
README.md
autoload.php
build-phar.sh
composer.json
example.jpg
index.php
phpunit.xml
swoole
wechat
.htaccess
autoload.php
wxtmp
.gitignore
.htaccess
.user.ini
404.html
H5B854518.wgt
admin.php
app-release.apk
app_download.html
cash.lock
demo.php
get_startup.php
get_version.php
get_version_new.php
index.html
index.php
qlg.tar.gz
reg.lock
robots.txt
284 lines
11 KiB
PHP
Executable File
284 lines
11 KiB
PHP
Executable File
<?php
|
|
|
|
namespace OSS\Tests;
|
|
|
|
require_once __DIR__ . '/Common.php';
|
|
|
|
use OSS\Model\LiveChannelConfig;
|
|
use OSS\Core\OssException;
|
|
|
|
class BucketLiveChannelTest extends \PHPUnit_Framework_TestCase
|
|
{
|
|
private $bucketName;
|
|
private $client;
|
|
|
|
public function setUp()
|
|
{
|
|
$this->client = Common::getOssClient();
|
|
$this->bucketName = 'php-sdk-test-rtmp-bucket-name-' . strval(rand(0, 10000));
|
|
$this->client->createBucket($this->bucketName);
|
|
Common::waitMetaSync();
|
|
}
|
|
|
|
public function tearDown()
|
|
{
|
|
////to delete created bucket
|
|
//1. delele live channel
|
|
$list = $this->client->listBucketLiveChannels($this->bucketName);
|
|
if (count($list->getChannelList()) != 0)
|
|
{
|
|
foreach($list->getChannelList() as $list)
|
|
{
|
|
$this->client->deleteBucketLiveChannel($this->bucketName, $list->getName());
|
|
}
|
|
}
|
|
//2. delete exsited object
|
|
$prefix = 'live-test/';
|
|
$delimiter = '/';
|
|
$nextMarker = '';
|
|
$maxkeys = 1000;
|
|
$options = array(
|
|
'delimiter' => $delimiter,
|
|
'prefix' => $prefix,
|
|
'max-keys' => $maxkeys,
|
|
'marker' => $nextMarker,
|
|
);
|
|
|
|
try {
|
|
$listObjectInfo = $this->client->listObjects($this->bucketName, $options);
|
|
} catch (OssException $e) {
|
|
printf($e->getMessage() . "\n");
|
|
return;
|
|
}
|
|
|
|
$objectList = $listObjectInfo->getObjectList(); // 文件列表
|
|
if (!empty($objectList))
|
|
{
|
|
foreach($objectList as $objectInfo)
|
|
$this->client->deleteObject($this->bucketName, $objectInfo->getKey());
|
|
}
|
|
//3. delete the bucket
|
|
$this->client->deleteBucket($this->bucketName);
|
|
}
|
|
|
|
public function testPutLiveChannel()
|
|
{
|
|
$config = new LiveChannelConfig(array(
|
|
'description' => 'live channel 1',
|
|
'type' => 'HLS',
|
|
'fragDuration' => 10,
|
|
'fragCount' => 5,
|
|
'playListName' => 'hello.m3u8'
|
|
));
|
|
$info = $this->client->putBucketLiveChannel($this->bucketName, 'live-1', $config);
|
|
$this->client->deleteBucketLiveChannel($this->bucketName, 'live-1');
|
|
|
|
$this->assertEquals('live-1', $info->getName());
|
|
$this->assertEquals('live channel 1', $info->getDescription());
|
|
$this->assertEquals(1, count($info->getPublishUrls()));
|
|
$this->assertEquals(1, count($info->getPlayUrls()));
|
|
}
|
|
|
|
public function testPutLiveChannelWithDefaultParams()
|
|
{
|
|
$config = new LiveChannelConfig(array(
|
|
'description' => 'live channel 1',
|
|
'type' => 'HLS',
|
|
));
|
|
$info = $this->client->putBucketLiveChannel($this->bucketName, 'live-1', $config);
|
|
$this->client->deleteBucketLiveChannel($this->bucketName, 'live-1');
|
|
|
|
$this->assertEquals('live-1', $info->getName());
|
|
$this->assertEquals('live channel 1', $info->getDescription());
|
|
$this->assertEquals(1, count($info->getPublishUrls()));
|
|
$this->assertEquals(1, count($info->getPlayUrls()));
|
|
}
|
|
|
|
public function testListLiveChannels()
|
|
{
|
|
$config = new LiveChannelConfig(array(
|
|
'description' => 'live channel 1',
|
|
'type' => 'HLS',
|
|
'fragDuration' => 10,
|
|
'fragCount' => 5,
|
|
'playListName' => 'hello.m3u8'
|
|
));
|
|
$this->client->putBucketLiveChannel($this->bucketName, 'live-1', $config);
|
|
|
|
$config = new LiveChannelConfig(array(
|
|
'description' => 'live channel 2',
|
|
'type' => 'HLS',
|
|
'fragDuration' => 10,
|
|
'fragCount' => 5,
|
|
'playListName' => 'hello.m3u8'
|
|
));
|
|
$this->client->putBucketLiveChannel($this->bucketName, 'live-2', $config);
|
|
|
|
$list = $this->client->listBucketLiveChannels($this->bucketName);
|
|
|
|
$this->assertEquals($this->bucketName, $list->getBucketName());
|
|
$this->assertEquals(false, $list->getIsTruncated());
|
|
$channels = $list->getChannelList();
|
|
$this->assertEquals(2, count($channels));
|
|
|
|
$chan1 = $channels[0];
|
|
$this->assertEquals('live-1', $chan1->getName());
|
|
$this->assertEquals('live channel 1', $chan1->getDescription());
|
|
$this->assertEquals(1, count($chan1->getPublishUrls()));
|
|
$this->assertEquals(1, count($chan1->getPlayUrls()));
|
|
|
|
$chan2 = $channels[1];
|
|
$this->assertEquals('live-2', $chan2->getName());
|
|
$this->assertEquals('live channel 2', $chan2->getDescription());
|
|
$this->assertEquals(1, count($chan2->getPublishUrls()));
|
|
$this->assertEquals(1, count($chan2->getPlayUrls()));
|
|
|
|
$list = $this->client->listBucketLiveChannels($this->bucketName, array(
|
|
'prefix' => 'live-',
|
|
'marker' => 'live-1',
|
|
'max-keys' => 10
|
|
));
|
|
$channels = $list->getChannelList();
|
|
$this->assertEquals(1, count($channels));
|
|
$chan2 = $channels[0];
|
|
$this->assertEquals('live-2', $chan2->getName());
|
|
$this->assertEquals('live channel 2', $chan2->getDescription());
|
|
$this->assertEquals(1, count($chan2->getPublishUrls()));
|
|
$this->assertEquals(1, count($chan2->getPlayUrls()));
|
|
|
|
$this->client->deleteBucketLiveChannel($this->bucketName, 'live-1');
|
|
$this->client->deleteBucketLiveChannel($this->bucketName, 'live-2');
|
|
$list = $this->client->listBucketLiveChannels($this->bucketName, array(
|
|
'prefix' => 'live-'
|
|
));
|
|
$this->assertEquals(0, count($list->getChannelList()));
|
|
}
|
|
|
|
public function testDeleteLiveChannel()
|
|
{
|
|
$channelName = 'live-to-delete';
|
|
$config = new LiveChannelConfig(array(
|
|
'description' => 'live channel to delete',
|
|
'type' => 'HLS',
|
|
'fragDuration' => 10,
|
|
'fragCount' => 5,
|
|
'playListName' => 'hello.m3u8'
|
|
));
|
|
$this->client->putBucketLiveChannel($this->bucketName, $channelName, $config);
|
|
|
|
$this->client->deleteBucketLiveChannel($this->bucketName, $channelName);
|
|
$list = $this->client->listBucketLiveChannels($this->bucketName, array(
|
|
'prefix' => $channelName
|
|
));
|
|
|
|
$this->assertEquals(0, count($list->getChannelList()));
|
|
}
|
|
|
|
public function testSignRtmpUrl()
|
|
{
|
|
$channelName = '90475';
|
|
$bucket = 'douyu';
|
|
$now = time();
|
|
$url = $this->client->signRtmpUrl($bucket, $channelName, 900, array(
|
|
'params' => array(
|
|
'playlistName' => 'playlist.m3u8'
|
|
)
|
|
));
|
|
|
|
$ret = parse_url($url);
|
|
$this->assertEquals('rtmp', $ret['scheme']);
|
|
parse_str($ret['query'], $query);
|
|
|
|
$this->assertTrue(isset($query['OSSAccessKeyId']));
|
|
$this->assertTrue(isset($query['Signature']));
|
|
$this->assertTrue(intval($query['Expires']) - ($now + 900) < 3);
|
|
$this->assertEquals('playlist.m3u8', $query['playlistName']);
|
|
}
|
|
|
|
public function testLiveChannelInfo()
|
|
{
|
|
$channelName = 'live-to-put-status';
|
|
$config = new LiveChannelConfig(array(
|
|
'description' => 'test live channel info',
|
|
'type' => 'HLS',
|
|
'fragDuration' => 10,
|
|
'fragCount' => 5,
|
|
'playListName' => 'hello.m3u8'
|
|
));
|
|
$this->client->putBucketLiveChannel($this->bucketName, $channelName, $config);
|
|
|
|
$info = $this->client->getLiveChannelInfo($this->bucketName, $channelName);
|
|
$this->assertEquals('test live channel info', $info->getDescription());
|
|
$this->assertEquals('enabled', $info->getStatus());
|
|
$this->assertEquals('HLS', $info->getType());
|
|
$this->assertEquals(10, $info->getFragDuration());
|
|
$this->assertEquals(5, $info->getFragCount());
|
|
$this->assertEquals('playlist.m3u8', $info->getPlayListName());
|
|
|
|
$this->client->deleteBucketLiveChannel($this->bucketName, $channelName);
|
|
$list = $this->client->listBucketLiveChannels($this->bucketName, array(
|
|
'prefix' => $channelName
|
|
));
|
|
$this->assertEquals(0, count($list->getChannelList()));
|
|
}
|
|
|
|
public function testPutLiveChannelStatus()
|
|
{
|
|
$channelName = 'live-to-put-status';
|
|
$config = new LiveChannelConfig(array(
|
|
'description' => 'test live channel info',
|
|
'type' => 'HLS',
|
|
'fragDuration' => 10,
|
|
'fragCount' => 5,
|
|
'playListName' => 'hello.m3u8'
|
|
));
|
|
$this->client->putBucketLiveChannel($this->bucketName, $channelName, $config);
|
|
|
|
$info = $this->client->getLiveChannelInfo($this->bucketName, $channelName);
|
|
$this->assertEquals('test live channel info', $info->getDescription());
|
|
$this->assertEquals('enabled', $info->getStatus());
|
|
$this->assertEquals('HLS', $info->getType());
|
|
$this->assertEquals(10, $info->getFragDuration());
|
|
$this->assertEquals(5, $info->getFragCount());
|
|
$this->assertEquals('playlist.m3u8', $info->getPlayListName());
|
|
$status = $this->client->getLiveChannelStatus($this->bucketName, $channelName);
|
|
$this->assertEquals('Idle', $status->getStatus());
|
|
|
|
|
|
$resp = $this->client->putLiveChannelStatus($this->bucketName, $channelName, "disabled");
|
|
$info = $this->client->getLiveChannelInfo($this->bucketName, $channelName);
|
|
$this->assertEquals('test live channel info', $info->getDescription());
|
|
$this->assertEquals('disabled', $info->getStatus());
|
|
$this->assertEquals('HLS', $info->getType());
|
|
$this->assertEquals(10, $info->getFragDuration());
|
|
$this->assertEquals(5, $info->getFragCount());
|
|
$this->assertEquals('playlist.m3u8', $info->getPlayListName());
|
|
|
|
$status = $this->client->getLiveChannelStatus($this->bucketName, $channelName);
|
|
//getLiveChannelInfo
|
|
$this->assertEquals('Disabled', $status->getStatus());
|
|
|
|
$this->client->deleteBucketLiveChannel($this->bucketName, $channelName);
|
|
$list = $this->client->listBucketLiveChannels($this->bucketName, array(
|
|
'prefix' => $channelName
|
|
));
|
|
$this->assertEquals(0, count($list->getChannelList()));
|
|
|
|
}
|
|
public function testLiveChannelHistory()
|
|
{
|
|
$channelName = 'live-test-history';
|
|
$config = new LiveChannelConfig(array(
|
|
'description' => 'test live channel info',
|
|
'type' => 'HLS',
|
|
'fragDuration' => 10,
|
|
'fragCount' => 5,
|
|
'playListName' => 'hello.m3u8'
|
|
));
|
|
$this->client->putBucketLiveChannel($this->bucketName, $channelName, $config);
|
|
|
|
$history = $this->client->getLiveChannelHistory($this->bucketName, $channelName);
|
|
$this->assertEquals(0, count($history->getLiveRecordList()));
|
|
}
|
|
}
|