72 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						||
 | 
						||
namespace Tests\Unit\MetadataResolver;
 | 
						||
 | 
						||
use App\MetadataResolver\IwaraResolver;
 | 
						||
use Tests\TestCase;
 | 
						||
 | 
						||
class IwaraResolverTest extends TestCase
 | 
						||
{
 | 
						||
    use CreateMockedResolver;
 | 
						||
 | 
						||
    public function setUp()
 | 
						||
    {
 | 
						||
        parent::setUp();
 | 
						||
 | 
						||
        if (!$this->shouldUseMock()) {
 | 
						||
            sleep(1);
 | 
						||
        }
 | 
						||
    }
 | 
						||
 | 
						||
    public function testVideo()
 | 
						||
    {
 | 
						||
        $responseText = file_get_contents(__DIR__ . '/../../fixture/Iwara/video.html');
 | 
						||
 | 
						||
        $this->createResolver(IwaraResolver::class, $responseText);
 | 
						||
 | 
						||
        $url = 'https://ecchi.iwara.tv/videos/wqlwatgmvhqg40kg';
 | 
						||
        $metadata = $this->resolver->resolve($url);
 | 
						||
        $this->assertEquals('Cakeface【鈴谷、プリンツ】', $metadata->title);
 | 
						||
        $this->assertEquals('投稿者: kuro@vov' . PHP_EOL . 'Thank you for watching!いつもありがとうございます' . PHP_EOL . 'こっそり微修正…' . PHP_EOL . 'Model:鈴谷&プリンツ つみだんご様 罪袋:BCD様' . PHP_EOL . '(いずれも改変)クレジット漏れゴメンナサイ。。。' . PHP_EOL, $metadata->description);
 | 
						||
        $this->assertEquals(['KanColle', 'kuro@vov'], $metadata->tags);
 | 
						||
        $this->assertEquals('https://i.iwara.tv/sites/default/files/videos/thumbnails/238591/thumbnail-238591_0004.jpg', $metadata->image);
 | 
						||
        if ($this->shouldUseMock()) {
 | 
						||
            $this->assertSame($url, (string) $this->handler->getLastRequest()->getUri());
 | 
						||
        }
 | 
						||
    }
 | 
						||
 | 
						||
    public function testYouTube()
 | 
						||
    {
 | 
						||
        $responseText = file_get_contents(__DIR__ . '/../../fixture/Iwara/youtube.html');
 | 
						||
 | 
						||
        $this->createResolver(IwaraResolver::class, $responseText);
 | 
						||
 | 
						||
        $url = 'https://iwara.tv/videos/z4dn6fag4iko08o0';
 | 
						||
        $metadata = $this->resolver->resolve($url);
 | 
						||
        $this->assertEquals('むちむち天龍ちゃんで君色に染まる', $metadata->title);
 | 
						||
        $this->assertEquals('投稿者: kochira' . PHP_EOL . 'Ray-cast test. Still trying to figure out how Ray-cast works so I\'m sorry if anything looks off.' . PHP_EOL . 'Unauthorized reproduction prohibited (無断転載は禁止です/未經授權禁止複製)' . PHP_EOL, $metadata->description);
 | 
						||
        $this->assertEquals(['KanColle', 'kochira'], $metadata->tags);
 | 
						||
        $this->assertEquals('https://img.youtube.com/vi/pvA5Db082yo/maxresdefault.jpg', $metadata->image);
 | 
						||
        if ($this->shouldUseMock()) {
 | 
						||
            $this->assertSame($url, (string) $this->handler->getLastRequest()->getUri());
 | 
						||
        }
 | 
						||
    }
 | 
						||
 | 
						||
    public function testImages()
 | 
						||
    {
 | 
						||
        $responseText = file_get_contents(__DIR__ . '/../../fixture/Iwara/images.html');
 | 
						||
 | 
						||
        $this->createResolver(IwaraResolver::class, $responseText);
 | 
						||
 | 
						||
        $url = 'https://iwara.tv/images/%E9%8F%A1%E9%9F%B3%E3%82%8A%E3%82%9318%E6%AD%B3';
 | 
						||
        $metadata = $this->resolver->resolve($url);
 | 
						||
        $this->assertEquals('鏡音りん18歳', $metadata->title);
 | 
						||
        $this->assertEquals('投稿者: Tonjiru Lion' . PHP_EOL . '今回はあんまエロくないです。' . PHP_EOL, $metadata->description);
 | 
						||
        $this->assertEquals(['Vocaloid', 'Tonjiru Lion'], $metadata->tags);
 | 
						||
        $this->assertEquals('https://i.iwara.tv/sites/default/files/photos/jing_yin_rin18sui_a.png', $metadata->image);
 | 
						||
        if ($this->shouldUseMock()) {
 | 
						||
            $this->assertSame($url, (string) $this->handler->getLastRequest()->getUri());
 | 
						||
        }
 | 
						||
    }
 | 
						||
}
 |