Skip to content

Commit fcbd57a

Browse files
committed
Fixed tests
1 parent bec19ac commit fcbd57a

8 files changed

Lines changed: 59 additions & 51 deletions

File tree

src/XRobotsTagParser.php

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@
55
* @author VIP nytt (vipnytt@gmail.com)
66
* @author Jan-Petter Gundersen (europe.jpg@gmail.com)
77
*
8+
* Project:
9+
* @link https://github.com/VIPnytt/X-Robots-Tag-parser
10+
* @license https://opensource.org/licenses/MIT MIT license
11+
*
812
* Specification:
913
* @link https://developers.google.com/webmasters/control-crawl-index/docs/robots_meta_tag#using-the-x-robots-tag-http-header
1014
*/
@@ -18,7 +22,7 @@
1822
class XRobotsTagParser
1923
{
2024
const HEADER_RULE_IDENTIFIER = 'x-robots-tag';
21-
const USERAGENT_DEFAULT = 'robots';
25+
const USERAGENT_DEFAULT = '';
2226

2327
const DIRECTIVE_ALL = 'all';
2428
const DIRECTIVE_NONE = 'none';
@@ -58,7 +62,7 @@ public function __construct($url, $userAgent = self::USERAGENT_DEFAULT, $headers
5862
}
5963
$this->url = $urlParser->encode();
6064
// Get headers
61-
$this->getHeaders($headers);
65+
$this->setHeaders($headers);
6266
// Parse rules
6367
$this->parse();
6468
// Set User-Agent
@@ -72,7 +76,7 @@ public function __construct($url, $userAgent = self::USERAGENT_DEFAULT, $headers
7276
* @param array $customHeaders - use these headers
7377
* @return void
7478
*/
75-
private function getHeaders($customHeaders = [])
79+
private function setHeaders($customHeaders = [])
7680
{
7781
$this->headers = $customHeaders;
7882
if (is_array($this->headers) && !empty($this->headers)) {

src/robot/URLParser.php

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,9 @@ public function isValid()
3030
{
3131
$this->encode();
3232
$parsed = parse_url($this->url);
33-
$host = $this->isHostValid();
34-
$scheme = $this->isSchemeValid();
3533
if ($parsed === false
36-
|| $host == false
37-
|| $scheme == false
34+
|| !$this->isHostValid()
35+
|| !$this->isSchemeValid()
3836
) {
3937
return false;
4038
}
@@ -71,8 +69,7 @@ public function encode()
7169
"=" => '!%3D!ui',
7270
"%" => '!%25!ui'
7371
];
74-
$this->url = preg_replace(array_values($reserved), array_keys($reserved), rawurlencode($this->url));
75-
return $this->url;
72+
return $this->url = preg_replace(array_values($reserved), array_keys($reserved), rawurlencode($this->url));
7673
}
7774

7875
/**

src/robot/UserAgentParser.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,7 @@ public function stripVersion()
6262
public function match($array, $fallback = null)
6363
{
6464
foreach ($this->groups as $userAgent) {
65-
$userAgent = mb_strtolower(trim($userAgent));
66-
if (in_array($userAgent, $array)) {
65+
if (in_array($userAgent, array_map('strtolower', $array))) {
6766
return $userAgent;
6867
}
6968
}

test/cases/DirectiveNoneTest.php

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ public function testNone($url, $bot, $headers)
2323
$this->assertContains('none', $parser->getRules());
2424
$this->assertContains('none', $parser->getRules());
2525

26-
$this->assertContains('noindex', $parser->export()['robots']);
27-
$this->assertContains('noindex', $parser->export()['robots']);
28-
$this->assertContains('noindex', $parser->export()['robots']);
26+
$this->assertContains('noindex', $parser->export()['']);
27+
$this->assertContains('noindex', $parser->export()['']);
28+
$this->assertContains('noindex', $parser->export()['']);
2929

3030
$this->assertContains('nofollow', $parser->export()['googlebot']);
3131
$this->assertContains('nofollow', $parser->export()['googlebot']);
@@ -39,11 +39,13 @@ public function testNone($url, $bot, $headers)
3939
public function generateDataForTest()
4040
{
4141
return [
42-
['http://example.com/'],
43-
['googlebot'],
4442
[
45-
'X-Robots-Tag: none',
46-
'X-Robots-Tag: googlebot: none'
43+
'http://example.com/',
44+
'googlebot',
45+
[
46+
'X-Robots-Tag: none',
47+
'X-Robots-Tag: googlebot: none'
48+
]
4749
]
4850
];
4951
}

test/cases/MultiDirectivesTest.php

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -20,25 +20,25 @@ public function testMultipleDirectives($url, $bot, $headers)
2020
$this->assertInstanceOf('vipnytt\XRobotsTagParser', $parser);
2121

2222
$this->assertContains('noindex', $parser->getRules());
23-
$this->assertContains('noindex', $parser->export()['robots']);
23+
$this->assertContains('noindex', $parser->export()['']);
2424
$this->assertContains('noindex', $parser->export()['googlebot']);
2525
$this->assertContains('nofollow', $parser->getRules());
26-
$this->assertContains('nofollow', $parser->export()['robots']);
26+
$this->assertContains('nofollow', $parser->export()['']);
2727
$this->assertContains('nofollow', $parser->export()['googlebot']);
2828
$this->assertContains('noarchive', $parser->getRules());
29-
$this->assertContains('noarchive', $parser->export()['robots']);
29+
$this->assertContains('noarchive', $parser->export()['']);
3030
$this->assertContains('noarchive', $parser->export()['googlebot']);
3131
$this->assertContains('nosnippet', $parser->getRules());
32-
$this->assertContains('nosnippet', $parser->export()['robots']);
32+
$this->assertContains('nosnippet', $parser->export()['']);
3333
$this->assertContains('nosnippet', $parser->export()['googlebot']);
3434
$this->assertContains('noodp', $parser->getRules());
35-
$this->assertContains('noodp', $parser->export()['robots']);
35+
$this->assertContains('noodp', $parser->export()['']);
3636
$this->assertContains('noodp', $parser->export()['googlebot']);
3737
$this->assertContains('notranslate', $parser->getRules());
38-
$this->assertContains('notranslate', $parser->export()['robots']);
38+
$this->assertContains('notranslate', $parser->export()['']);
3939
$this->assertContains('notranslate', $parser->export()['googlebot']);
4040
$this->assertContains('noimageindex', $parser->getRules());
41-
$this->assertContains('noimageindex', $parser->export()['robots']);
41+
$this->assertContains('noimageindex', $parser->export()['']);
4242
$this->assertContains('noimageindex', $parser->export()['googlebot']);
4343
}
4444

@@ -49,20 +49,22 @@ public function testMultipleDirectives($url, $bot, $headers)
4949
public function generateDataForTest()
5050
{
5151
return [
52-
['http://example.com/'],
53-
['googlebot'],
5452
[
55-
'X-Robots-Tag: all',
56-
'X-Robots-Tag: noindex',
57-
'X-Robots-Tag: nofollow',
58-
'X-Robots-Tag: none',
59-
'X-Robots-Tag: noarchive',
60-
'X-Robots-Tag: nosnippet',
61-
'X-Robots-Tag: noodp',
62-
'X-Robots-Tag: notranslate',
63-
'X-Robots-Tag: noimageindex',
64-
'X-Robots-Tag: unavailable_after: 25 Jun 2010 15:00:00 PST',
65-
'X-Robots-Tag: googlebot: all, none, nofollow,nosnippet,notranslate unavailable_after: 25 Jun 2010 15:00:00 PST, noindex, noarchive, noodp,noimageindex'
53+
'http://example.com/',
54+
'googlebot',
55+
[
56+
'X-Robots-Tag: all',
57+
'X-Robots-Tag: noindex',
58+
'X-Robots-Tag: nofollow',
59+
'X-Robots-Tag: none',
60+
'X-Robots-Tag: noarchive',
61+
'X-Robots-Tag: nosnippet',
62+
'X-Robots-Tag: noodp',
63+
'X-Robots-Tag: notranslate',
64+
'X-Robots-Tag: noimageindex',
65+
'X-Robots-Tag: unavailable_after: 25 Jun 2010 15:00:00 PST',
66+
'X-Robots-Tag: googlebot: all, none, nofollow,nosnippet,notranslate unavailable_after: 25 Jun 2010 15:00:00 PST, noindex, noarchive, noodp,noimageindex'
67+
]
6668
]
6769
];
6870
}

test/cases/UserAgentTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public function testCharacterCase()
1414
$parser = new UserAgentParser('GoogleBot');
1515
$this->assertInstanceOf('vipnytt\robot\UserAgentParser', $parser);
1616

17-
$this->assertEquals('googlebot', $parser->match('GoogleBot'));
17+
$this->assertEquals('googlebot', $parser->match(['GoogleBot']));
1818
}
1919

2020
/**

test/cases/exportTest.php

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ public function testExport($url, $bot, $headers)
2525
$this->assertContains('noindex', $parser->export()['bingbot']);
2626
$this->assertContains('noodp', $parser->export()['bingbot']);
2727

28-
$this->assertContains('noindex', $parser->export()['robot']);
29-
$this->assertContains('noodp', $parser->export()['robot']);
28+
$this->assertContains('noindex', $parser->export()['']);
29+
$this->assertContains('noodp', $parser->export()['']);
3030
}
3131

3232
/**
@@ -36,12 +36,14 @@ public function testExport($url, $bot, $headers)
3636
public function generateDataForTest()
3737
{
3838
return [
39-
['http://example.com/'],
40-
['googlebot'],
4139
[
42-
'X-Robots-Tag: googlebot: noindex, noarchive',
43-
'X-Robots-Tag: bingbot: noindex, noodp',
44-
'X-Robots-Tag: noindex, noodp'
40+
'http://example.com/',
41+
'googlebot',
42+
[
43+
'X-Robots-Tag: googlebot: noindex, noarchive',
44+
'X-Robots-Tag: bingbot: noindex, noodp',
45+
'X-Robots-Tag: noindex, noodp'
46+
]
4547
]
4648
];
4749
}

test/cases/getRulesTest.php

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,14 @@ public function testGetRules($url, $bot, $headers)
3131
public function generateDataForTest()
3232
{
3333
return [
34-
['http://example.com/'],
35-
['googlebot'],
3634
[
37-
'X-Robots-Tag: googlebot: noindex, noarchive',
38-
'X-Robots-Tag: bingbot: noindex, noodp',
39-
'X-Robots-Tag: noindex, noodp'
35+
'http://example.com/',
36+
'googlebot',
37+
[
38+
'X-Robots-Tag: googlebot: noindex, noarchive',
39+
'X-Robots-Tag: bingbot: noindex, noodp',
40+
'X-Robots-Tag: noindex, noodp'
41+
]
4042
]
4143
];
4244
}

0 commit comments

Comments
 (0)