@@ -625,6 +625,41 @@ public function testStartsArchive()
625625 $ this ->assertEquals ('auto ' , $ archive ->streamMode );
626626 }
627627
628+ public function testStartsArchiveInMultiTagMode ()
629+ {
630+ $ this ->setupOTWithMocks ([[
631+ 'code ' => 200 ,
632+ 'headers ' => [
633+ 'Content-Type ' => 'application/json '
634+ ],
635+ 'path ' => 'v2/project/APIKEY/archive/session '
636+ ]]);
637+
638+ $ sessionId = '2_MX44NTQ1MTF-flR1ZSBOb3YgMTIgMDk6NDA6NTkgUFNUIDIwMTN-MC43NjU0Nzh- ' ;
639+
640+ $ archive = $ this ->opentok ->startArchive ($ sessionId , ['multiArchiveTag ' => 'my-key ' ]);
641+
642+ // Assert
643+ $ this ->assertCount (1 , $ this ->historyContainer );
644+
645+ $ request = $ this ->historyContainer [0 ]['request ' ];
646+ $ this ->assertEquals ('POST ' , strtoupper ($ request ->getMethod ()));
647+ $ this ->assertEquals ('/v2/project/ ' .$ this ->API_KEY .'/archive ' , $ request ->getUri ()->getPath ());
648+ $ this ->assertEquals ('api.opentok.com ' , $ request ->getUri ()->getHost ());
649+ $ this ->assertEquals ('https ' , $ request ->getUri ()->getScheme ());
650+
651+ $ this ->assertInstanceOf ('OpenTok\Archive ' , $ archive );
652+ $ this ->assertEquals (0 , $ archive ->duration );
653+ $ this ->assertEquals ('' , $ archive ->reason );
654+ $ this ->assertEquals ('started ' , $ archive ->status );
655+ $ this ->assertEquals (OutputMode::COMPOSED , $ archive ->outputMode );
656+ $ this ->assertNull ($ archive ->name );
657+ $ this ->assertNull ($ archive ->url );
658+ $ this ->assertTrue ($ archive ->hasVideo );
659+ $ this ->assertTrue ($ archive ->hasAudio );
660+ $ this ->assertEquals ('auto ' , $ archive ->streamMode );
661+ }
662+
628663 public function testStartsArchiveInManualMode (): void
629664 {
630665 // Arrange
@@ -1559,6 +1594,47 @@ public function testStartsBroadcast()
15591594 $ this ->assertEquals ('auto ' , $ broadcast ->streamMode );
15601595 }
15611596
1597+ public function testStartsBroadcastWithMultiBroadcastTag ()
1598+ {
1599+ // Arrange
1600+ $ this ->setupOTWithMocks ([[
1601+ 'code ' => 200 ,
1602+ 'headers ' => [
1603+ 'Content-Type ' => 'application/json '
1604+ ],
1605+ 'path ' => '/v2/project/APIKEY/broadcast/session_layout-bestfit '
1606+ ]]);
1607+
1608+ $ sessionId = '2_MX44NTQ1MTF-fjE0NzI0MzU2MDUyMjN-eVgwNFJhZmR6MjdockFHanpxNzBXaEFXfn4 ' ;
1609+
1610+ $ broadcast = $ this ->opentok ->startBroadcast ($ sessionId , ['multiBroadcastTag ' => 'my-broadcast-tag ' ]);
1611+
1612+ $ this ->assertCount (1 , $ this ->historyContainer );
1613+
1614+ $ request = $ this ->historyContainer [0 ]['request ' ];
1615+ $ this ->assertEquals ('POST ' , strtoupper ($ request ->getMethod ()));
1616+ $ this ->assertEquals ('/v2/project/ ' .$ this ->API_KEY .'/broadcast ' , $ request ->getUri ()->getPath ());
1617+ $ this ->assertEquals ('api.opentok.com ' , $ request ->getUri ()->getHost ());
1618+ $ this ->assertEquals ('https ' , $ request ->getUri ()->getScheme ());
1619+
1620+ $ contentType = $ request ->getHeaderLine ('Content-Type ' );
1621+ $ this ->assertNotEmpty ($ contentType );
1622+ $ this ->assertEquals ('application/json ' , $ contentType );
1623+
1624+ $ authString = $ request ->getHeaderLine ('X-OPENTOK-AUTH ' );
1625+ $ this ->assertEquals (true , TestHelpers::validateOpenTokAuthHeader ($ this ->API_KEY , $ this ->API_SECRET , $ authString ));
1626+
1627+ $ this ->assertInstanceOf ('OpenTok\Broadcast ' , $ broadcast );
1628+ $ this ->assertIsString ($ broadcast ->id );
1629+ $ this ->assertEquals ($ sessionId , $ broadcast ->sessionId );
1630+ $ this ->assertIsArray ($ broadcast ->broadcastUrls );
1631+ $ this ->assertArrayHasKey ('hls ' , $ broadcast ->broadcastUrls );
1632+ $ this ->assertIsString ($ broadcast ->broadcastUrls ['hls ' ]);
1633+ $ this ->assertIsString ($ broadcast ->hlsUrl );
1634+ $ this ->assertFalse ($ broadcast ->isStopped );
1635+ $ this ->assertEquals ('auto ' , $ broadcast ->streamMode );
1636+ }
1637+
15621638 public function testCannotStartBroadcastWithInvalidStreamMode ()
15631639 {
15641640 $ this ->expectException (InvalidArgumentException::class);
0 commit comments