Skip to content

Commit

Permalink
Merge pull request #244 from opentok/dev
Browse files Browse the repository at this point in the history
* Fix Notice: Undefined property: OpenTok\StreamList:: when call OpenTok\StreamList::getItems() method

* Update Travis Config to specify HHVM 3.3.0 (the last HHVM version that supports PHP) (#242)
  • Loading branch information
msach22 authored May 2, 2019
2 parents a8b636c + 0a3f3cb commit ebb2c56
Show file tree
Hide file tree
Showing 5 changed files with 54 additions and 44 deletions.
3 changes: 2 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,9 @@ php:
- 5.6
- 7.0
- 7.1
- hhvm
- hhvm-3.30
before_script:
- curl -sSfL -o ~/.phpenv/versions/hhvm/bin/phpunit https://phar.phpunit.de/phpunit-5.7.phar
- travis_retry composer install
script:
- ./vendor/bin/phpunit
Expand Down
27 changes: 18 additions & 9 deletions src/OpenTok/StreamList.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,17 @@
namespace OpenTok;

/**
* An object, returned by the <a href="OpenTok.html#method_listStreams">OpenTok.listStreams()</a>
* method, representing a list of streams in an OpenTok session.
*/
class StreamList {

/** @ignore */
* An object, returned by the <a href="OpenTok.html#method_listStreams">OpenTok.listStreams()</a>
* method, representing a list of streams in an OpenTok session.
*/
class StreamList
{
/** @ignore */
private $data;

/** @ignore */
private $items;

/** @ignore */
public function __construct($streamListData)
{
Expand All @@ -19,6 +22,8 @@ public function __construct($streamListData)

/**
* Returns the number of total streams for the session ID.
*
* @return int
*/
public function totalCount()
{
Expand All @@ -27,20 +32,24 @@ public function totalCount()

/**
* Returns an array of Stream objects.
*
* @return array
*/
public function getItems()
{
if (!$this->items) {
if (!is_array($this->items)) {
$items = array();
foreach($this->data['items'] as $streamData) {
foreach ($this->data['items'] as $streamData) {
$items[] = new Stream($streamData);
}
$this->items = $items;
}
return $this->items;
}


/**
* @return array
*/
public function jsonSerialize()
{
return $this->data;
Expand Down
2 changes: 1 addition & 1 deletion src/OpenTok/Util/Client.php
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@

// TODO: build this dynamically
/** @internal */
define('OPENTOK_SDK_VERSION', '4.4.0');
define('OPENTOK_SDK_VERSION', '4.4.1');
/** @internal */
define('OPENTOK_SDK_USER_AGENT', 'OpenTok-PHP-SDK/' . OPENTOK_SDK_VERSION);

Expand Down
4 changes: 2 additions & 2 deletions tests/OpenTok/ArchiveTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ public function testStopsArchive()
// TODO: test the dynamically built User Agent string
$userAgent = $request->getHeaderLine('User-Agent');
$this->assertNotEmpty($userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.0', $userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.1', $userAgent);

// TODO: test the properties of the actual archive object
$this->assertEquals('stopped', $this->archive->status);
Expand Down Expand Up @@ -195,7 +195,7 @@ public function testDeletesArchive()
// TODO: test the dynamically built User Agent string
$userAgent = $request->getHeaderLine('User-Agent');
$this->assertNotEmpty($userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.0', $userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.1', $userAgent);

$this->assertTrue($success);
// TODO: assert that all properties of the archive object were cleared
Expand Down
62 changes: 31 additions & 31 deletions tests/OpenTok/OpenTokTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ public function testCreatesDefaultSession()
// TODO: test the dynamically built User Agent string
$userAgent = $request->getHeaderLine('User-Agent');
$this->assertNotEmpty($userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.0', $userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.1', $userAgent);

$p2p_preference = $this->getPostField($request, 'p2p.preference');
$this->assertEquals('enabled', $p2p_preference);
Expand Down Expand Up @@ -186,7 +186,7 @@ public function testCreatesMediaRoutedAndLocationSession()
// TODO: test the dynamically built User Agent string
$userAgent = $request->getHeaderLine('User-Agent');
$this->assertNotEmpty($userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.0', $userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.1', $userAgent);

$location = $this->getPostField($request, 'location');
$this->assertEquals('12.34.56.78', $location);
Expand Down Expand Up @@ -234,7 +234,7 @@ public function testCreatesMediaRelayedSession()
// TODO: test the dynamically built User Agent string
$userAgent = $request->getHeaderLine('User-Agent');
$this->assertNotEmpty($userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.0', $userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.1', $userAgent);

$p2p_preference = $this->getPostField($request, 'p2p.preference');
$this->assertEquals('enabled', $p2p_preference);
Expand Down Expand Up @@ -279,7 +279,7 @@ public function testCreatesAutoArchivedSession()
// TODO: test the dynamically built User Agent string
$userAgent = $request->getHeaderLine('User-Agent');
$this->assertNotEmpty($userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.0', $userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.1', $userAgent);

$archiveMode = $this->getPostField($request, 'archiveMode');
$this->assertEquals('always', $archiveMode);
Expand Down Expand Up @@ -521,7 +521,7 @@ public function testStartsArchive()
// TODO: test the dynamically built User Agent string
$userAgent = $request->getHeaderLine('User-Agent');
$this->assertNotEmpty($userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.0', $userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.1', $userAgent);

$this->assertInstanceOf('OpenTok\Archive', $archive);
$this->assertEquals(0, $archive->duration);
Expand Down Expand Up @@ -571,7 +571,7 @@ public function testStartsArchiveNamed()
// TODO: test the dynamically built User Agent string
$userAgent = $request->getHeaderLine('User-Agent');
$this->assertNotEmpty($userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.0', $userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.1', $userAgent);

$body = json_decode($request->getBody());
$this->assertEquals($sessionId, $body->sessionId);
Expand Down Expand Up @@ -619,7 +619,7 @@ public function testStartsArchiveNamedDeprecated()
// TODO: test the dynamically built User Agent string
$userAgent = $request->getHeaderLine('User-Agent');
$this->assertNotEmpty($userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.0', $userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.1', $userAgent);

$body = json_decode($request->getBody());
$this->assertEquals($sessionId, $body->sessionId);
Expand Down Expand Up @@ -666,7 +666,7 @@ public function testStartsArchiveAudioOnly()
// TODO: test the dynamically built User Agent string
$userAgent = $request->getHeaderLine('User-Agent');
$this->assertNotEmpty($userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.0', $userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.1', $userAgent);

$body = json_decode($request->getBody());
$this->assertEquals($sessionId, $body->sessionId);
Expand Down Expand Up @@ -716,7 +716,7 @@ public function testStartsArchiveIndividualOutput()
// TODO: test the dynamically built User Agent string
$userAgent = $request->getHeaderLine('User-Agent');
$this->assertNotEmpty($userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.0', $userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.1', $userAgent);

$body = json_decode($request->getBody());
$this->assertEquals($sessionId, $body->sessionId);
Expand Down Expand Up @@ -765,7 +765,7 @@ public function testStartsArchiveResolutionSD()
// TODO: test the dynamically built User Agent string
$userAgent = $request->getHeaderLine('User-Agent');
$this->assertNotEmpty($userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.0', $userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.1', $userAgent);

$body = json_decode($request->getBody());
$this->assertEquals($sessionId, $body->sessionId);
Expand Down Expand Up @@ -813,7 +813,7 @@ public function testStartsArchiveResolutionHD()
// TODO: test the dynamically built User Agent string
$userAgent = $request->getHeaderLine('User-Agent');
$this->assertNotEmpty($userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.0', $userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.1', $userAgent);

$body = json_decode($request->getBody());
$this->assertEquals($sessionId, $body->sessionId);
Expand Down Expand Up @@ -857,7 +857,7 @@ public function testStopsArchive()
// TODO: test the dynamically built User Agent string
$userAgent = $request->getHeaderLine('User-Agent');
$this->assertNotEmpty($userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.0', $userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.1', $userAgent);

$this->assertInstanceOf('OpenTok\Archive', $archive);
// TODO: test the properties of the actual archive object
Expand Down Expand Up @@ -896,7 +896,7 @@ public function testGetsArchive()
// TODO: test the dynamically built User Agent string
$userAgent = $request->getHeaderLine('User-Agent');
$this->assertNotEmpty($userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.0', $userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.1', $userAgent);

$this->assertInstanceOf('OpenTok\Archive', $archive);
// TODO: test the properties of the actual archive object
Expand Down Expand Up @@ -933,7 +933,7 @@ public function testDeletesArchive()
// TODO: test the dynamically built User Agent string
$userAgent = $request->getHeaderLine('User-Agent');
$this->assertNotEmpty($userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.0', $userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.1', $userAgent);

$this->assertTrue($success);
// TODO: test the properties of the actual archive object
Expand Down Expand Up @@ -968,7 +968,7 @@ public function testListsArchives()
// TODO: test the dynamically built User Agent string
$userAgent = $request->getHeaderLine('User-Agent');
$this->assertNotEmpty($userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.0', $userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.1', $userAgent);

$this->assertInstanceOf('OpenTok\ArchiveList', $archiveList);
// TODO: test the properties of the actual archiveList object and its contained archive
Expand Down Expand Up @@ -1004,7 +1004,7 @@ public function testListsArchivesWithOffsetAndCount()
// TODO: test the dynamically built User Agent string
$userAgent = $request->getHeaderLine('User-Agent');
$this->assertNotEmpty($userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.0', $userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.1', $userAgent);

$this->assertInstanceOf('OpenTok\ArchiveList', $archiveList);
$this->assertEquals(1, $archiveList->totalCount());
Expand Down Expand Up @@ -1045,7 +1045,7 @@ public function testListsArchivesWithSessionId()
// TODO: test the dynamically built User Agent string
$userAgent = $request->getHeaderLine('User-Agent');
$this->assertNotEmpty($userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.0', $userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.1', $userAgent);

$this->assertInstanceOf('OpenTok\ArchiveList', $archiveList);
$this->assertEquals(2, $archiveList->totalCount());
Expand Down Expand Up @@ -1131,7 +1131,7 @@ public function testForceDisconnect()
// TODO: test the dynamically built User Agent string
$userAgent = $request->getHeaderLine('User-Agent');
$this->assertNotEmpty($userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.0', $userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.1', $userAgent);

$this->assertTrue($success);
}
Expand Down Expand Up @@ -1192,7 +1192,7 @@ public function testStartsBroadcast()
// TODO: test the dynamically built User Agent string
$userAgent = $request->getHeaderLine('User-Agent');
$this->assertNotEmpty($userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.0', $userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.1', $userAgent);

$this->assertInstanceOf('OpenTok\Broadcast', $broadcast);
$this->assertInternalType('string', $broadcast->id);
Expand Down Expand Up @@ -1248,7 +1248,7 @@ public function testStartBroadcastWithOptions()
// TODO: test the dynamically built User Agent string
$userAgent = $request->getHeaderLine('User-Agent');
$this->assertNotEmpty($userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.0', $userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.1', $userAgent);

$this->assertInstanceOf('OpenTok\Broadcast', $broadcast);
$this->assertInternalType('string', $broadcast->id);
Expand Down Expand Up @@ -1295,7 +1295,7 @@ public function testStopsBroadcast()
// TODO: test the dynamically built User Agent string
$userAgent = $request->getHeaderLine('User-Agent');
$this->assertNotEmpty($userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.0', $userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.1', $userAgent);

$this->assertInstanceOf('OpenTok\Broadcast', $broadcast);
$this->assertTrue($broadcast->isStopped);
Expand Down Expand Up @@ -1332,7 +1332,7 @@ public function testGetsBroadcast()
// TODO: test the dynamically built User Agent string
$userAgent = $request->getHeaderLine('User-Agent');
$this->assertNotEmpty($userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.0', $userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.1', $userAgent);

$this->assertInstanceOf('OpenTok\Broadcast', $broadcast);
}
Expand Down Expand Up @@ -1376,7 +1376,7 @@ public function testUpdatesBroadcastLayoutWithPredefined()
// TODO: test the dynamically built User Agent string
$userAgent = $request->getHeaderLine('User-Agent');
$this->assertNotEmpty($userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.0', $userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.1', $userAgent);
}

public function testUpdatesBroadcastLayoutWithCustom()
Expand Down Expand Up @@ -1422,7 +1422,7 @@ public function testUpdatesBroadcastLayoutWithCustom()
// TODO: test the dynamically built User Agent string
$userAgent = $request->getHeaderLine('User-Agent');
$this->assertNotEmpty($userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.0', $userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.1', $userAgent);
}

public function testUpdatesStreamLayoutClassList()
Expand Down Expand Up @@ -1467,7 +1467,7 @@ public function testUpdatesStreamLayoutClassList()
// TODO: test the dynamically built User Agent string
$userAgent = $request->getHeaderLine('User-Agent');
$this->assertNotEmpty($userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.0', $userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.1', $userAgent);
}

public function testGetStream()
Expand Down Expand Up @@ -1506,7 +1506,7 @@ public function testGetStream()

$userAgent = $request->getHeaderLine('User-Agent');
$this->assertNotEmpty($userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.0', $userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.1', $userAgent);
}

public function testSipCall()
Expand Down Expand Up @@ -1674,7 +1674,7 @@ public function testSignalData()
// TODO: test the dynamically built User Agent string
$userAgent = $request->getHeaderLine('User-Agent');
$this->assertNotEmpty($userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.0', $userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.1', $userAgent);

$body = json_decode($request->getBody());
$this->assertEquals('apple', $body->data);
Expand Down Expand Up @@ -1716,7 +1716,7 @@ public function testSignalWithConnectionId()
// TODO: test the dynamically built User Agent string
$userAgent = $request->getHeaderLine('User-Agent');
$this->assertNotEmpty($userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.0', $userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.1', $userAgent);

$body = json_decode($request->getBody());
$this->assertEquals('random message', $body->data);
Expand Down Expand Up @@ -1827,7 +1827,7 @@ public function testListStreams()
// TODO: test the dynamically built User Agent string
$userAgent = $request->getHeaderLine('User-Agent');
$this->assertNotEmpty($userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.0', $userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.1', $userAgent);

$this->assertInstanceOf('OpenTok\StreamList', $streamList);

Expand Down Expand Up @@ -1871,7 +1871,7 @@ public function testsSetArchiveLayoutWithPredefined()
// TODO: test the dynamically built User Agent string
$userAgent = $request->getHeaderLine('User-Agent');
$this->assertNotEmpty($userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.0', $userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.1', $userAgent);
}

public function testsSetArchiveLayoutWithCustom()
Expand Down Expand Up @@ -1917,7 +1917,7 @@ public function testsSetArchiveLayoutWithCustom()
// TODO: test the dynamically built User Agent string
$userAgent = $request->getHeaderLine('User-Agent');
$this->assertNotEmpty($userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.0', $userAgent);
$this->assertStringStartsWith('OpenTok-PHP-SDK/4.4.1', $userAgent);
}

}
Expand Down

0 comments on commit ebb2c56

Please sign in to comment.