optimizations
This commit is contained in:
@@ -42,45 +42,34 @@ class BrowseApiTest extends TestCase
|
||||
$artwork->categories()->attach($category->id);
|
||||
}
|
||||
|
||||
$response = $this->get('/browse?limit=12&grid=v2');
|
||||
$response = $this->get('/explore?limit=12&grid=v2');
|
||||
$response->assertOk();
|
||||
|
||||
$html = $response->getContent();
|
||||
$this->assertNotFalse($html);
|
||||
$this->assertStringContainsString('<meta name="robots" content="index,follow" />', $html);
|
||||
$this->assertMatchesRegularExpression('/<link rel="canonical" href="[^"]*\/browse\?limit=12"\s*\/>/i', $html);
|
||||
$this->assertStringContainsString('name="robots" content="index,follow"', $html);
|
||||
$this->assertMatchesRegularExpression('/<link rel="canonical" href="[^"]*\/explore\?limit=12"\s*\/>/i', $html);
|
||||
preg_match('/<link rel="canonical" href="([^"]+)"\s*\/>/i', $html, $canonicalMatches);
|
||||
$this->assertArrayHasKey(1, $canonicalMatches);
|
||||
$canonicalUrl = html_entity_decode((string) $canonicalMatches[1], ENT_QUOTES);
|
||||
$this->assertStringNotContainsString('grid=v2', $canonicalUrl);
|
||||
|
||||
$this->assertMatchesRegularExpression('/<link rel="next" href="([^"]+)"\s*\/>/i', $html);
|
||||
preg_match('/<link rel="next" href="([^"]+)"\s*\/>/i', $html, $nextMatches);
|
||||
$this->assertArrayHasKey(1, $nextMatches);
|
||||
$nextUrl = html_entity_decode((string) $nextMatches[1], ENT_QUOTES);
|
||||
$this->assertStringContainsString('cursor=', $nextUrl);
|
||||
$this->assertStringNotContainsString('grid=v2', $nextUrl);
|
||||
|
||||
$secondPage = $this->get($nextUrl);
|
||||
$secondPage = $this->get('/explore?limit=12&page=2&grid=v2');
|
||||
$secondPage->assertOk();
|
||||
$secondHtml = $secondPage->getContent();
|
||||
$this->assertNotFalse($secondHtml);
|
||||
$this->assertMatchesRegularExpression('/<link rel="prev" href="([^"]+)"\s*\/>/i', $secondHtml);
|
||||
preg_match('/<link rel="prev" href="([^"]+)"\s*\/>/i', $secondHtml, $prevMatches);
|
||||
$this->assertArrayHasKey(1, $prevMatches);
|
||||
$prevUrl = html_entity_decode((string) $prevMatches[1], ENT_QUOTES);
|
||||
$this->assertStringNotContainsString('grid=v2', $prevUrl);
|
||||
$this->assertMatchesRegularExpression('/<link rel="canonical" href="[^"]*\/browse\?[^\"]*cursor=/i', $secondHtml);
|
||||
$this->assertMatchesRegularExpression('/<link rel="canonical" href="[^"]*\/explore\?[^"]*page=2/i', $secondHtml);
|
||||
preg_match('/<link rel="canonical" href="([^"]+)"\s*\/>/i', $secondHtml, $secondCanonicalMatches);
|
||||
$this->assertArrayHasKey(1, $secondCanonicalMatches);
|
||||
$secondCanonicalUrl = html_entity_decode((string) $secondCanonicalMatches[1], ENT_QUOTES);
|
||||
$this->assertStringNotContainsString('grid=v2', $secondCanonicalUrl);
|
||||
$this->assertStringContainsString('page=2', $secondCanonicalUrl);
|
||||
|
||||
$pageOne = $this->get('/browse?limit=12&page=1&grid=v2');
|
||||
$pageOne = $this->get('/explore?limit=12&page=1&grid=v2');
|
||||
$pageOne->assertOk();
|
||||
$pageOneHtml = $pageOne->getContent();
|
||||
$this->assertNotFalse($pageOneHtml);
|
||||
$this->assertMatchesRegularExpression('/<link rel="canonical" href="[^"]*\/browse\?limit=12"\s*\/>/i', $pageOneHtml);
|
||||
$this->assertMatchesRegularExpression('/<link rel="canonical" href="[^"]*\/explore\?limit=12"\s*\/>/i', $pageOneHtml);
|
||||
preg_match('/<link rel="canonical" href="([^"]+)"\s*\/>/i', $pageOneHtml, $pageOneCanonicalMatches);
|
||||
$this->assertArrayHasKey(1, $pageOneCanonicalMatches);
|
||||
$pageOneCanonicalUrl = html_entity_decode((string) $pageOneCanonicalMatches[1], ENT_QUOTES);
|
||||
@@ -198,7 +187,7 @@ class BrowseApiTest extends TestCase
|
||||
|
||||
$artwork->categories()->attach($category->id);
|
||||
|
||||
$response = $this->get('/browse');
|
||||
$response = $this->get('/explore');
|
||||
|
||||
$response->assertOk();
|
||||
$response->assertSee('Forest Light');
|
||||
@@ -206,11 +195,8 @@ class BrowseApiTest extends TestCase
|
||||
|
||||
$html = $response->getContent();
|
||||
$this->assertNotFalse($html);
|
||||
$this->assertStringContainsString('itemprop="thumbnailUrl"', $html);
|
||||
// First card (index 0) is eager-loaded with fetchpriority=high — no blur-preview
|
||||
$this->assertStringContainsString('loading="eager"', $html);
|
||||
$this->assertStringContainsString('decoding="sync"', $html);
|
||||
$this->assertStringContainsString('fetchpriority="high"', $html);
|
||||
$this->assertMatchesRegularExpression('/<img[^>]*loading="eager"[^>]*width="\d+"[^>]*height="\d+"/i', $html);
|
||||
$this->assertStringContainsString('data-react-masonry-gallery', $html);
|
||||
$this->assertStringContainsString('data-gallery-type="browse"', $html);
|
||||
$this->assertStringContainsString('Forest Light', $html);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user