diff --git a/.scrutinizer.yml b/.scrutinizer.yml new file mode 100644 index 00000000..39c28269 --- /dev/null +++ b/.scrutinizer.yml @@ -0,0 +1,6 @@ +imports: + - php + +tools: + external_code_coverage: + timeout: 2100 diff --git a/.travis.yml b/.travis.yml index 672c8791..c7870549 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,9 +11,13 @@ before_script: - php composer.phar install --dev script: - - ./vendor/bin/phpunit ./tests/ + - cd ./tests/ + - ../vendor/bin/phpunit # - ./vendor/bin/phpcs -n --standard=PSR2 ./SEOstats/ ./tests/ +after_script: + - ../vendor/bin/ocular code-coverage:upload --format=php-clover ../build/logs/clover.xml + notifications: email: false diff --git a/SEOstats/Services/Alexa.php b/SEOstats/Services/Alexa.php index 8aef8a2f..49b7c4c8 100644 --- a/SEOstats/Services/Alexa.php +++ b/SEOstats/Services/Alexa.php @@ -237,13 +237,13 @@ public static function getTrafficGraph($type = 1, $url = false, $w = 660, $h = 3 /** * @return DOMXPath */ - private static function _getXPath($url) { + protected static function _getXPath($url) { $url = parent::getUrl($url); if (parent::getLastLoadedUrl() == $url && self::$_xpath) { return self::$_xpath; } - $html = self::_getAlexaPage($url); + $html = static::_getAlexaPage($url); $doc = parent::_getDOMDocument($html); $xpath = parent::_getDOMXPath($doc); @@ -252,15 +252,15 @@ private static function _getXPath($url) { return $xpath; } - private static function _getAlexaPage($url) + protected static function _getAlexaPage($url) { $domain = Helper\Url::parseHost($url); $dataUrl = sprintf(Config\Services::ALEXA_SITEINFO_URL, $domain); - $html = parent::_getPage($dataUrl); + $html = static::_getPage($dataUrl); return $html; } - private static function retInt($str) + protected static function retInt($str) { $strim = trim(str_replace(',', '', $str)); $intStr = 0 < strlen($strim) ? $strim : '0'; diff --git a/composer.json b/composer.json index 44162ede..ef13abdb 100644 --- a/composer.json +++ b/composer.json @@ -35,7 +35,8 @@ }, "require-dev" : { "squizlabs/php_codesniffer" : "~1", - "phpunit/phpunit" : ">=3.7,<4" + "phpunit/phpunit" : ">=3.7,<4", + "scrutinizer/ocular" : "~1" }, "autoload" : { "psr-0" : { diff --git a/tests/SEOstatsTest/Services/AlexaTest.php b/tests/SEOstatsTest/Services/AlexaTest.php index d2eee87b..bb8b2e39 100644 --- a/tests/SEOstatsTest/Services/AlexaTest.php +++ b/tests/SEOstatsTest/Services/AlexaTest.php @@ -1,79 +1,359 @@ SUT = new Alexa(); + $this->reflection = array(); + + $this->url = 'http://github.com'; + $this->SUT = new \SEOstats\Services\Alexa(); + $this->SUT->setUrl($this->url); + } - public function testGetDailyRank() + /** + * + * @dataProvider providerTestSiteinfoMethodWithDiffrentVersion + */ + public function testSiteinfoMethodWithDiffrentVersion ($method, $version, $type) { - $this->markTestIncomplete(); + $this->mockAlexa($method); + $this->mockGetAlexaPage ($version); + $SUT = $this->mockedSUT; + $result = call_user_func(get_class($SUT) . '::' . $method, $this->url); + + $noDataDefault = $this->helperMakeAccessable($SUT, 'noDataDefaultValue', array()); + + if ($type){ + if (is_array($type)) { + foreach ($type as $arrayKey=>$arrayValueType) { + $this->assertArrayHasKey($arrayKey, $result); + $this->assertInternalType($arrayValueType, $result[$arrayKey]); + } + } elseif (is_string($type)) { + $this->assertInternalType($type, $result); + } + $this->assertNotEquals($noDataDefault, $result); + } + elseif (null === $type) { + $this->assertEquals($noDataDefault, $result); + } else { + $this->markTestSkipped(sprintf('methode %s returns an invalid result check source data version', $method)); + } } - public function testGetWeeklyRank() + /** + * + * @dataProvider providerTestGetTrafficGraph + */ + public function testGetTrafficGraph($url, $paramsArray, $assertResult) { - $this->markTestIncomplete(); + if ($assertResult instanceof \Exception) { + $this->setExpectedException(get_class($assertResult), $assertResult->getMessage()); + } + $result = call_user_func_array(array($this->SUT, 'getTrafficGraph'), $paramsArray); + + if (! $assertResult instanceof \Exception) { + $this->assertInternalType('string', $result); + $this->assertEquals($assertResult, $result); + } } - public function testGetMonthlyRank() + public function testGetXPath() { - $this->markTestIncomplete(); + $urlList = array( + $this->url, + 'http://www.google.de' + ); + + $reflectionMethod = $this->helperMakeAccessable($this->SUT,'_getXPath'); + $reflectionProperty = $this->helperMakeAccessable($this->SUT,'_lastLoadedUrl'); + + $result1 = $result2 = null; + + $SUT = $this->SUT; + + foreach ($urlList as $url) { + // first call + $result1 = $reflectionMethod->invoke($this->SUT, $url); + $this->assertInternalType('object', $result1); + $this->assertInstanceOf('DOMXPath', $result1); + $this->assertNotSame($result1, $result2); + + + $reflectionProperty->setValue($this->SUT, $url); + + + // secound call + $result2 = $reflectionMethod->invoke($this->SUT, $url); + $this->assertInternalType('object', $result2); + $this->assertInstanceOf('DOMXPath', $result2); + $this->assertSame($result1, $result2); + } } - public function testGetGlobalRank() + public function testGetAlexaPage() { - $this->markTestIncomplete(); + $this->mockAlexa('_getAlexaPage'); + $this->mockGetPage(); + $reflectionMethod = $this->helperMakeAccessable($this->mockedSUT,'_getAlexaPage'); + + $result = $reflectionMethod->invoke($this->mockedSUT, $this->url); + $this->assertInternalType('string', $result); + + $this->assertRegExp('#markTestIncomplete(); + $reflectionMethod = $this->helperMakeAccessable($this->SUT,'retInt'); + + $result = $reflectionMethod->invoke($this->SUT, $string); + $this->assertInternalType('integer', $result); + $this->assertSame($assert, $result); } - public function testGetCountryRank() + public function providerTestRetInt() { - $this->markTestIncomplete(); + return array( + array('1234',1234), + array('12,34',1234), + array(' 1234 ',1234), + array(' 1,2,3,4 ',1234), + array('',0), + array(' , , , , ',0), + array(' ',0), + array(',,,,,',0), + ); } - public function testGetBacklinkCount() + public function providerTestGetTrafficGraph() { - $this->markTestIncomplete(); + // $type = 1, $url = false, $w = 660, $h = 330, $period = 1, $html = true + $result = array(); + $result[]= array( + 'http://github.com', + array(1, false, 660, 330, 1, true), + sprintf( + 'Alexa Statistics Graph for %s', + sprintf(\SEOstats\Config\Services::ALEXA_GRAPH_URL, 't', 660, 330, 1, 'github.com'), + 660, 330, 'github.com' + ) + ); + + $paramsArray = array(); + $paramsArray[] = array( + 'width'=>660, + 'height'=>330, + 'periode'=>1, + 'typeIndex'=>1, + 'typeChar'=>'t', + 'url'=>'http://github.com', + 'domain'=>'github.com', + ); + + $paramsArray[] = array_merge($paramsArray[0], array('url'=>'http://github.com','domain'=>'github.com')); + $paramsArray[] = array_merge($paramsArray[0], array('width'=>880,'height'=>440)); + $paramsArray[] = array_merge($paramsArray[0], array('periode'=>2)); + + + $typeArray = array(0=>'',1=>'t',2=>'p',3=>'u',4=>'s',5=>'b',6=>'q',1337=>''); + + foreach ($typeArray as $typeIndex=>$typeChar) { + $paramsArray[] = array_merge($paramsArray[0], array('typeIndex'=>$typeIndex,'typeChar'=>$typeChar)); + } + + foreach ($paramsArray as $params) { + + $assertResult = $params['typeChar'] !== '' + ? sprintf(\SEOstats\Config\Services::ALEXA_GRAPH_URL, $params['typeChar'], $params['width'], $params['height'], $params['periode'], $params['domain']) + : new \Exception("Undefined variable: gtype"); + + $result[]= array( + $params['url'], + array($params['typeIndex'], $params['url'], $params['width'], $params['height'], $params['periode'], false), + $assertResult + ); + } + + return $result; } - public function testGetPageLoadTime() + public function providerTestSiteinfoMethodWithDiffrentVersion() { - $this->markTestIncomplete(); + $result = array(); + $methodList = array( + 'getPageLoadTime'=>'string', + 'getBacklinkCount'=>'integer', + 'getCountryRank'=>array('rank'=>'integer','country'=>'string'), + 'getGlobalRank'=>'integer', + 'getQuarterRank'=>'integer', + + 'getMonthlyRank'=>array('integer', null), + 'getMonthRank'=>'integer', + + 'getWeeklyRank'=>array('integer', null), + 'getWeekRank'=>'integer', + + 'getDailyRank'=>array('integer', null), + ); + + $versionList = array( + array('2013',true), + array('2014',null), + array('2014',false) # new version currently not supported + ); + + foreach ($versionList as $version) { + foreach ($methodList as $methodName=>$methodeAssertResultType) { + $versionArray = $this->getStandardVersions($version[0], $methodName); + $iVersion = 0; + foreach($versionArray as $versionSub) { + $assertResult = $methodeAssertResultType; + + if (is_array($methodeAssertResultType) && array_key_exists(0, $methodeAssertResultType)) { + if ($version[0] == $versionSub) { + $assertResult = $methodeAssertResultType[0]; + } else { + $versionIndex = explode('-',$versionSub); + $assertResult = $methodeAssertResultType[ $versionIndex[2] - 1]; + } + } + + $result[]= array( + $methodName, + $versionSub, + $version[1] ? $assertResult : $version[1] + ); + } + } + } + + return $result; } - public function testGetTrafficGraph() + protected function mockAlexa($method, $vars=array()) { - $this->markTestIncomplete(); + + $methods = array(); + switch ($method) { + case '_getXPath': + $methods = array('_getAlexaPage','_getPage'); + break; + case '_getAlexaPage': + $methods = array('_getPage'); + break; + default: + $methods = array('_getAlexaPage','_getPage'); + break; + } + + $this->mockedSUT = $this->getMock('\SEOstats\Services\Alexa', $methods); + $this->mockedSUT->setUrl(array_key_exists('url',$vars) ? $vars['url'] : $this->url); } - public function test_GetXPath() + protected function mockGetPage() { - $this->markTestIncomplete(); + $standardFile = sprintf('%s/_assert/alexa-siteinfo-%s.html', __DIR__, 2013); + + $this->mockedSUT->staticExpects($this->any()) + ->method('_getPage') + ->will($this->returnValue(file_get_contents($standardFile))); } - public function test_GetAlexaPage() + protected function mockGetAlexaPage ($version, $calledTest = null) { - $this->markTestIncomplete(); + $standardFile = sprintf('%s/_assert/alexa-siteinfo-%s.html', __DIR__, $version); + $this->mockedSUT->staticExpects($this->any()) + ->method('_getAlexaPage') + ->will($this->returnValue(file_get_contents($standardFile))); } - public function testRetInt() + protected function getStandardVersions ($version, $methode) { - $this->markTestIncomplete(); + $filePattern = 'alexa-siteinfo-%s-%s-%s.html'; + + $methodeFile = __DIR__ . '/_assert/' . sprintf($filePattern, $version, $methode, 1); + + + $result= array($version); + if (! file_exists($methodeFile)) { + return array($version); + } + + $fileList = new \DirectoryIterator(__DIR__ . '/_assert/'); + $regexp = '#' . sprintf($filePattern, $version, $methode, '\d+') . '$#'; + $filtertList = new \RegexIterator($fileList, $regexp); + + $regexp = '#alexa-siteinfo-([^.]+).html$#'; + foreach ($filtertList as $file) { + preg_match($regexp, $file, $matches); + $result[] = $matches[1]; + } + return $result; + } + + protected function helperMakeAccessable ($object, $propertyOrMethod, $value = null) + { + $objectClass = get_class($object); + if (!isset($this->reflection[$objectClass])) { + $this->reflection[$objectClass] = new ReflectionClass($object); + } + $reflection = $this->reflection[$objectClass]; + $isMethod = $reflection->hasMethod($propertyOrMethod); + + if ($isMethod) { + $reflectionSub = $reflection->getMethod($propertyOrMethod); + } else { + $reflectionSub = $reflection->getProperty($propertyOrMethod); + } + + $reflectionSub->setAccessible(true); + + if (!is_null($value)) { + if ($isMethod) { + return $reflectionSub->invokeArgs($object, $value); + } else { + $reflectionSub->setValue($object, $value); + } + } + + return $reflectionSub; } } diff --git a/tests/SEOstatsTest/Services/_assert/alexa-siteinfo-2013-getDailyRank-1.html b/tests/SEOstatsTest/Services/_assert/alexa-siteinfo-2013-getDailyRank-1.html new file mode 100644 index 00000000..03f9e578 --- /dev/null +++ b/tests/SEOstatsTest/Services/_assert/alexa-siteinfo-2013-getDailyRank-1.html @@ -0,0 +1,67 @@ + + + + + +Google.com Site Info + + + + +
+
+

Traffic rank for google.com:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 Traffic RankChange
Yesterday1 +0
7 day1 +0
1 month1 +-1 Change in Traffic Rank over the trailing 1 month period (A negative change means the site is getting more popular)
3 month2 ++1 Change in Traffic Rank over the trailing 3 month period (A positive change means the site is getting less popular)
+
+
+ + diff --git a/tests/SEOstatsTest/Services/_assert/alexa-siteinfo-2013-getDailyRank-2.html b/tests/SEOstatsTest/Services/_assert/alexa-siteinfo-2013-getDailyRank-2.html new file mode 100644 index 00000000..32ef387f --- /dev/null +++ b/tests/SEOstatsTest/Services/_assert/alexa-siteinfo-2013-getDailyRank-2.html @@ -0,0 +1,40 @@ + + + + + +Google.com Site Info + + + + +
+
+

Traffic rank for google.com:

+ + + + + + + + + + + + + + + + + + + + + +
 Traffic RankChange
3 month2 ++1 Change in Traffic Rank over the trailing 3 month period (A positive change means the site is getting less popular)
+
+
+ + diff --git a/tests/SEOstatsTest/Services/_assert/alexa-siteinfo-2013-getMonthlyRank-1.html b/tests/SEOstatsTest/Services/_assert/alexa-siteinfo-2013-getMonthlyRank-1.html new file mode 100644 index 00000000..c68deb87 --- /dev/null +++ b/tests/SEOstatsTest/Services/_assert/alexa-siteinfo-2013-getMonthlyRank-1.html @@ -0,0 +1,48 @@ + + + + + +Google.com Site Info + + + + +
+
+

Traffic rank for google.com:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 Traffic RankChange
1 month1 +-1 Change in Traffic Rank over the trailing 1 month period (A negative change means the site is getting more popular)
3 month2 ++1 Change in Traffic Rank over the trailing 3 month period (A positive change means the site is getting less popular)
+
+
+ + diff --git a/tests/SEOstatsTest/Services/_assert/alexa-siteinfo-2013-getMonthlyRank-2.html b/tests/SEOstatsTest/Services/_assert/alexa-siteinfo-2013-getMonthlyRank-2.html new file mode 100644 index 00000000..32ef387f --- /dev/null +++ b/tests/SEOstatsTest/Services/_assert/alexa-siteinfo-2013-getMonthlyRank-2.html @@ -0,0 +1,40 @@ + + + + + +Google.com Site Info + + + + +
+
+

Traffic rank for google.com:

+ + + + + + + + + + + + + + + + + + + + + +
 Traffic RankChange
3 month2 ++1 Change in Traffic Rank over the trailing 3 month period (A positive change means the site is getting less popular)
+
+
+ + diff --git a/tests/SEOstatsTest/Services/_assert/alexa-siteinfo-2013-getWeeklyRank-1.html b/tests/SEOstatsTest/Services/_assert/alexa-siteinfo-2013-getWeeklyRank-1.html new file mode 100644 index 00000000..3b211bff --- /dev/null +++ b/tests/SEOstatsTest/Services/_assert/alexa-siteinfo-2013-getWeeklyRank-1.html @@ -0,0 +1,57 @@ + + + + + +Google.com Site Info + + + + +
+
+

Traffic rank for google.com:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 Traffic RankChange
7 day1 +0
1 month1 +-1 Change in Traffic Rank over the trailing 1 month period (A negative change means the site is getting more popular)
3 month2 ++1 Change in Traffic Rank over the trailing 3 month period (A positive change means the site is getting less popular)
+
+
+ + diff --git a/tests/SEOstatsTest/Services/_assert/alexa-siteinfo-2013-getWeeklyRank-2.html b/tests/SEOstatsTest/Services/_assert/alexa-siteinfo-2013-getWeeklyRank-2.html new file mode 100644 index 00000000..32ef387f --- /dev/null +++ b/tests/SEOstatsTest/Services/_assert/alexa-siteinfo-2013-getWeeklyRank-2.html @@ -0,0 +1,40 @@ + + + + + +Google.com Site Info + + + + +
+
+

Traffic rank for google.com:

+ + + + + + + + + + + + + + + + + + + + + +
 Traffic RankChange
3 month2 ++1 Change in Traffic Rank over the trailing 3 month period (A positive change means the site is getting less popular)
+
+
+ + diff --git a/tests/SEOstatsTest/Services/_assert/alexa-siteinfo-2013-setRankingKeys-2.html b/tests/SEOstatsTest/Services/_assert/alexa-siteinfo-2013-setRankingKeys-2.html new file mode 100644 index 00000000..32ef387f --- /dev/null +++ b/tests/SEOstatsTest/Services/_assert/alexa-siteinfo-2013-setRankingKeys-2.html @@ -0,0 +1,40 @@ + + + + + +Google.com Site Info + + + + +
+
+

Traffic rank for google.com:

+ + + + + + + + + + + + + + + + + + + + + +
 Traffic RankChange
3 month2 ++1 Change in Traffic Rank over the trailing 3 month period (A positive change means the site is getting less popular)
+
+
+ + diff --git a/tests/SEOstatsTest/Services/_assert/alexa-siteinfo-2013-setRankingKeys-3.html b/tests/SEOstatsTest/Services/_assert/alexa-siteinfo-2013-setRankingKeys-3.html new file mode 100644 index 00000000..c68deb87 --- /dev/null +++ b/tests/SEOstatsTest/Services/_assert/alexa-siteinfo-2013-setRankingKeys-3.html @@ -0,0 +1,48 @@ + + + + + +Google.com Site Info + + + + +
+
+

Traffic rank for google.com:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 Traffic RankChange
1 month1 +-1 Change in Traffic Rank over the trailing 1 month period (A negative change means the site is getting more popular)
3 month2 ++1 Change in Traffic Rank over the trailing 3 month period (A positive change means the site is getting less popular)
+
+
+ + diff --git a/tests/SEOstatsTest/Services/_assert/alexa-siteinfo-2013-setRankingKeys-4.html b/tests/SEOstatsTest/Services/_assert/alexa-siteinfo-2013-setRankingKeys-4.html new file mode 100644 index 00000000..3b211bff --- /dev/null +++ b/tests/SEOstatsTest/Services/_assert/alexa-siteinfo-2013-setRankingKeys-4.html @@ -0,0 +1,57 @@ + + + + + +Google.com Site Info + + + + +
+
+

Traffic rank for google.com:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 Traffic RankChange
7 day1 +0
1 month1 +-1 Change in Traffic Rank over the trailing 1 month period (A negative change means the site is getting more popular)
3 month2 ++1 Change in Traffic Rank over the trailing 3 month period (A positive change means the site is getting less popular)
+
+
+ + diff --git a/tests/SEOstatsTest/Services/_assert/alexa-siteinfo-2013-setRankingKeys-5.html b/tests/SEOstatsTest/Services/_assert/alexa-siteinfo-2013-setRankingKeys-5.html new file mode 100644 index 00000000..03f9e578 --- /dev/null +++ b/tests/SEOstatsTest/Services/_assert/alexa-siteinfo-2013-setRankingKeys-5.html @@ -0,0 +1,67 @@ + + + + + +Google.com Site Info + + + + +
+
+

Traffic rank for google.com:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 Traffic RankChange
Yesterday1 +0
7 day1 +0
1 month1 +-1 Change in Traffic Rank over the trailing 1 month period (A negative change means the site is getting more popular)
3 month2 ++1 Change in Traffic Rank over the trailing 3 month period (A positive change means the site is getting less popular)
+
+
+ + diff --git a/tests/SEOstatsTest/Services/_assert/alexa-siteinfo-2013.html b/tests/SEOstatsTest/Services/_assert/alexa-siteinfo-2013.html new file mode 100644 index 00000000..f8a293f7 --- /dev/null +++ b/tests/SEOstatsTest/Services/_assert/alexa-siteinfo-2013.html @@ -0,0 +1,2437 @@ + + + + + + + + + + + + + +Google.com Site Info + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
+
+
+
+
+ +
+
+
+
+ +
+
+
+ + + +
+

google.com

+Google +
+
+ + +
+Add to Comparison +
+ + +  + + +
+ +
+

Sign up to access comparisons feature.

+
+

Easily compare sites on traffic, engagement, reputation and demographics metrics and see who is winning.


+

Features

+
    +
  • - Compare up to 10 sites.
  • +
  • - Create unlimited lists
  • +
  • - Global Rank comparisons
  • +
  • - Traffic, engagement, reputation
      and demographics comparisons.
      (PRO only) +
+

+

Sign up for a FREE account and start comparing sites.

+Create an account +
+
+ +
+

Already have a subscription?

+

Login with your Alexa Account

+
+
+
+ + +
+
+ + + + + + +
+
+
+
+ + + + + +Forgot your password? + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Customize your site listing with your logo, plus add links back to your +site and much more! Enhanced Site Listings are just one of the features +you get with an Alexa PRO subscription. Learn +more about Enhanced Site Listings. +
+
+ +

I want an Alexa PRO subscription.

+ +
+ +
+

I have an Alexa PRO subscription.

+ +Sign In + +
+
+
+
+ +
+
+
+
+ +

How popular is google.com?

+

+
+ + +
+

+Alexa Traffic Ranks
+The global and country traffic ranks show how popular a site is relative to other sites. +

+ +

+Unique Visitors and Pageviews
+The number of people who visit this site and the number of pages they view. +Site owners who install the Alexa Certify Code on their website can choose +to display their Certified Metrics, such as Monthly Unique Visitors and +Pageviews, if they wish. Coming soon, estimated metrics will be displayed +for many sites if Certified Metrics are not available. +

+ +
+
+
+
+
+
+ +
+

+Alexa Traffic Ranks +

+

How is this site ranked relative to other sites?

+
+
+ +
+
+ +
+ + +

Global Rank + + + +Alexa Traffic Rank
An estimate of +this site's popularity.

The rank is calculated using a combination of average daily visitors to +this site and pageviews on this site over the past 3 months. The site with the highest combination +of visitors and pageviews is ranked #1.

Updated Daily
+ +
+

+
+Global rank icon2 +1 +
+ +
    +
  • -1%
  • +
+
+
+
+
+
+ + +

Rank in United States + + + +Traffic Rank in Country
An estimate of this site's popularity in a specific country.

+The rank by country is calculated using a combination of average daily visitors +to this site and pageviews on this site from users from that country over the +past month. The site with the highest combination of visitors and pageviews +is ranked #1 in that country.

Updated Daily
+ +
+

+
+United States Flag1 +  +
+ +
    +
  • %
  • +
+
+
+
+
+
+
+
+
+ +Did you know? You can get the most accurate rank possible by certifying your site's metrics. +Find out how. + +
+
+
+
+
+
+
+ +

How engaged are visitors to google.com?

+

+
+ + +
+

+How engaged are visitors to this site?
+Engagement metrics help you understand how interested a site's visitors are with the site's content. The metrics are updated daily based on the trailing 3 months. +

+

+Bounce Rate (%)
+Percentage of visits to the site that consist of a single pageview. +

+

+Daily Pageviews per Visitor
+Estimated daily unique pageviews per visitor on the site. +

+

+Daily Time on Site
+Estimated daily time on site (mm:ss) per visitor to the site. +

+
+
+
+
+
+
+ + + +

Bounce Rate

+
+18.00% +7.00% +
+ +
    +
  • 7%
  • +
+
+
+
+
+ + + +

Daily Pageviews per Visitor

+
+16.89 +5.23% +
+ +
    +
  • 5.23%
  • +
+
+
+
+
+ + + +

Daily Time on Site

+
+14:53 +4.00% +
+ +
    +
  • -4%
  • +
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+ +

Who visits google.com?

+

+
+ + +
+

+Audience Demographics
+The audience demographics data comes from voluntary demographics information submitted by people in our global traffic panel. The data is for the past 12 months, updated monthly. +Learn more +

+

The demographics data consists of:

+

+

+

+

+Audience Geography
+The audience geography data describes where visitors to this site over the past month are located, and how the site is ranked in popular countries. If a country is not listed, it is because Alexa does not have enough data for this site to rank/measure the site's popularity among that country's online population. These metrics are updated monthly. +

+
+
+
+
+
+
+

+Audience Demographics +

+

How similar is this site's audience to the general internet population?

+
+
+
+ +
+
+Gender +
+
+ +Male + + +
+ + +  + + + + +  + + + + + + + +The audience for this site among Males is similar to the general internet population.

Confidence: high
+ +
+
+
+
+
+
+ +Female + + +
+ + +  + + + + +  + + + + + + + +The audience for this site among Females is similar to the general internet population.

Confidence: high
+ +
+
+
+
+
+
+
+ +
+
+Education +
+
+ +No College + + +
+ + +  + + + + +  + + + + + + + +The audience for this site among people who did not go to college is similar to the general internet population.

Confidence: high
+ +
+
+
+
+
+
+ +Some College + + +
+ + +  + + + + +  + + + + + + + +The audience for this site among people some college education is similar to the general internet population.

Confidence: high
+ +
+
+
+
+
+
+ +Graduate School + + +
+ + +  + + + + +  + + + + + + + +The audience for this site among people who went to graduate school is similar to the general internet population.

Confidence: high
+ +
+
+
+
+
+
+ +College + + +
+ + +  + + + + +  + + + + + + + +The audience for this site among people who went to college is similar to the general internet population.

Confidence: high
+ +
+
+
+
+
+
+
+ +
+
+Browsing Location +
+
+ +Home + + +
+ + +  + + + + +  + + + + + + + +The audience for this site among people browsing from home is similar to the general internet population.

Confidence: high
+ +
+
+
+
+
+
+ +School + + +
+ + +  + + + + +  + + + + + + + +Relative to the general internet population, people browsing from school are under-represented at this site.

Confidence: high
+ +
+
+
+
+
+
+ +Work + + +
+ + +  + + + + +  + + + + + + + +The audience for this site among people browsing from work is similar to the general internet population.

Confidence: high
+ +
+
+
+
+
+
+
+
+
+Subscribe to Alexa Pro to view all demographics including age, income, ethnicity and children. +View More +
+
+ + +  + + +
+ +
+

Subscribe to view all demographics

+
+

Gain access to:

+
    +
  • - Age, income, children, ethnicity
      in additon to gender, education and browsing location.
  • +
  • - Comparisons of website demographics
  • +
+
+
+

Subscribe to Alexa Pro Insight Plan to
view all demographics.

+Subscribe +
+
+ +
+

Already have a subscription?

+

Login with your Alexa Account

+
+
+
+ + +
+
+ + + + + + +
+
+
+
+ + + + + +Forgot your password? + + +
+
+
+
+
+
+
+
+
+
+
+
+

+Audience Geography +

+

Where are this site's visitors located?

+
+
+ +
+

Visitors by Country

+
+

You need Flash 8 to view the map.

+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CountryPercent of VisitorsRank in Country
United States Flag  United States 30.2% 1
India Flag  India 8.9% 1
Brazil Flag  Brazil 3.4% 3
Russia Flag  Russia 3.3% 4
United Kingdom Flag  United Kingdom 2.8% 2
Japan Flag  Japan 2.6% 5
Iran Flag  Iran 2.4% 1
Germany Flag  Germany 2.4% 4
Indonesia Flag  Indonesia 2.4% 1
France Flag  France 2.2% 2
+
+
+
+
+
+ + +
+
+
+
+ +

What sites link to google.com?

+

+
+ + +
+

The "Sites Linking In" count shows the number of sites that Alexa found that link to this site. +For more information please see this explanation of +how Alexa determines the number of sites linking in.

+

The complete list of sites linking to this site is available to Alexa Pro subscribers.

+
+
+
+
+
+
+
+
Total Sites Linking In
+4,272,563 +
+ + + + + + + + + + + + + + + + + + + + +
SiteGlobal RankPage
1. amazon.com 6 amazon.com/-/e/B001JS4V8E
2. twitter.com 11 blog.de.twitter.com/2010/04/wir-wachse...
3. linkedin.com 14 apply.linkedin.com/documents/libraries...
4. google.co.in 13 bks0.books.google.co.in
5. google.fr 35 adwords.google.fr/support/aw/bin/searc...
+
+Subscribe to Alexa Pro to view all 4,272,563 sites linking in. +View More +
+
+ + +  + + +
+ +
+

Subscribe to view all sites linking in

+
+

With any Alexa Pro plan you can:

+
    +
  • - Get the full list of sites linking in for any site
  • +
  • - Benchmark your link-building efforts
  • +
  • - See who is linking to your competitors
  • +
+
+

Subscribe to Alexa Pro to
view all sites linking in

+Subscribe +
+
+ +
+

Already have a subscription?

+

Login with your Alexa Account

+
+
+
+ + +
+
+ + + + + + +
+
+
+
+ + + + + +Forgot your password? + + +
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+ +

+Where do visitors go on google.com? +

+

+
+ + +
+

The table shows the top subdomains for this site ordered by the percentage of visitors +that visited the subdomain over a month. Note that the percentages can add up to more than +100% because a visitor can visit multiple subdomains during the month.

+

Updated Monthly.

+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SubdomainPercent of Visitors
google.com 72.24%
mail.google.com 48.66%
accounts.google.com 34.25%
docs.google.com 12.65%
plus.google.com 10.59%
drive.google.com 6.65%
translate.google.com 6.23%
maps.google.com 5.57%
support.google.com 5.30%
adwords.google.com 3.49%
play.google.com 2.98%
news.google.com 2.27%
developers.google.com 1.06%
sites.google.com 1.05%
productforums.google.com 1.01%
code.google.com 0.96%
url.google.com 0.76%
feedburner.google.com 0.76%
groups.google.com 0.71%
ejabat.google.com 0.49%
admin.google.com 0.37%
picasaweb.google.com 0.35%
encrypted.google.com 0.18%
prod.google.com 0.02%
+
+
+
+
+
+
+
+ +

How fast does google.com load?

+

+
+ + +
+

The reported load time for a website is the median time it takes to load +pages from that site in a real users' web browsers.

+

Alexa takes the median of all the page load times we observe for a site +and then compares that to the same figure for all other sites. For example, +a site in the 98th percentile (Very Fast) has a median load time faster than +98% of all measured sites, while a site in the 2nd percentile (Very Slow) +loads more quickly than only 2% of all sites and is slower than 97% of all sites.

+

The load time of an individual page is how long it takes for the DOM - +the structure of the page - to be loaded. This time doesn't include the time +to load all images and stylesheets, for example.

+

The load time metric is updated monthly.

+
+
+
+
+

Average (1.439 Seconds), 52% of sites are slower.

+
+
+
+
+
+
+
+ +

Where can I find more info about google.com?

+

+
+ + +
+

+Site Description
+A short description of the site. +

+

+Contact
+How to contact the owner of the site. +

+
+
+
+
+
+
+ +

Site Description

+

Enables users to search the world's information, including webpages, images, and videos. Offers unique features and search technology.

+ +
+ +

Contact

+
unlisted
dns-admin [at] google.com

+
+
+ +
+
+
+
+
+
+
+ +

How can I get deeper insight?

+

By subscribing to Alexa Pro you can gain deeper insight on your traffic and search engine optimizations.

+
+ + +
+

Alexa Pro subscriptions for site owners give you metrics, +tools and analysis to increase your web traffic and succeed online. +We give you accurate traffic metrics, automated site scans, lists of sites linking in, +SEO recommendations, and much more.

+
+
+
+
+
+
    +
  • +

    SEO Score

    +

    Alexa will audit your site regularly and give you reports with actionable recommendations.

    +
  • +
  • +

    Accurate Metrics

    +

    Get Alexa Traffic Rank and other key performance metrics, certified for accuracy by Alexa.

    +
  • +
  • +

    Uptime Monitor

    +

    Know what percent of the time your site is up, and more importantly when it was down.

    +
  • +
+ +
+
+
+ + + +
+
+ +
+ +
+

Try Alexa PRO Basic: One Month Free

+ +
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + + + + + + + + + + + + diff --git a/tests/SEOstatsTest/Services/_assert/alexa-siteinfo-2014.html b/tests/SEOstatsTest/Services/_assert/alexa-siteinfo-2014.html new file mode 100644 index 00000000..18f7e842 --- /dev/null +++ b/tests/SEOstatsTest/Services/_assert/alexa-siteinfo-2014.html @@ -0,0 +1,6718 @@ + + + + + + + + + + + +github.com Site Overview + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + +
+
+
+
+ +
+
+
+
+
+
+

Competitive Intelligence

+
+
+
+ +
+
+ +
+
+

Site Overview

+
+
+
+ + + +
+
+ +

+ +
+
+ +Is this your site? +Certify your site's metrics. + +
+
+
+
+
+
+ +
+ + + +
+
+
+
+

Certified Site Metrics are metrics that are directly-measured from the website +instead of estimated. The website owner has installed an Alexa Certify Code on +the pages of their site and chosen to show the metrics publicly. +

+
For the website owner Certified Metrics provide:
+
    +
  • A more accurate Alexa Rank
  • +
  • A private metrics Dashboard for On-Site Analytics
  • +
  • The ability to publish unique visitor and pageview counts if desired
  • +
+

Certified Metrics are available with all Alexa Pro plans.

+ +
+
+

Not all websites implement our on-site analytics and publish the results. +For these sites, we show estimated metrics based on traffic patterns across the web as a whole. +We identify these patterns by looking at the activity of millions of web users throughout the world, +and using data normalization to correct for any biases.

+

The more traffic a site gets, the more data we have to calculate estimated metrics. +Estimates are more reliable the closer a site is to being ranked #1. Global traffic ranks of 100,000+ +are subject to large fluctuations and should be considered rough estimates.

+

If a site has Certified Metrics instead of estimated, that means its owner has installed code allowing us to directly measure their traffic. +These metrics have a greater level of accuracy, no matter what the ranking.

+

Learn more about Alexa's Data

+
+ +

How popular is github.com?

+
+
+ +
+

+Alexa Traffic Ranks +

+

How is this site ranked relative to other sites?

+
+
+ +
+
+ +
+ + +

Global Rank + + + +Alexa Traffic Rank
An estimate of +this site's popularity.

The rank is calculated using a combination of average daily visitors to +this site and pageviews on this site over the past 3 months. The site with the highest combination +of visitors and pageviews is ranked #1.

Updated Daily
+ +
+

+
+Global rank icon178 +6 +
+ +
    +
  • -6%
  • +
+
+
+
+
+
+ + +

Rank in United States + + + +Traffic Rank in Country
An estimate of this site's popularity in a specific country.

+The rank by country is calculated using a combination of average daily visitors +to this site and pageviews on this site from users from that country over the +past month. The site with the highest combination of visitors and pageviews +is ranked #1 in that country.

Updated Daily
+ +
+

+
+United States Flag197 +  +
+ +
    +
  • %
  • +
+
+
+
+
+ +
+
+
+ +
+
+

+Alexa Traffic Ranks
+The global and country traffic ranks show how popular a site is relative to other sites. +

+ +

+Unique Visitors and Pageviews
+The number of people who visit this site and the number of pages they view. +Site owners who install the Alexa Certify Code on their website can choose +to display their Certified Metrics, such as Monthly Unique Visitors and +Pageviews, if they wish. Coming soon, estimated metrics will be displayed +for many sites if Certified Metrics are not available. +

+ +
+

How engaged are visitors to github.com?

+
+ + + +

Bounce Rate

+
+42.60% +3.00% +
+ +
    +
  • -3%
  • +
+
+
+
+
+ + + +

Daily Pageviews per Visitor

+
+5.96 +8.60% +
+ +
    +
  • 8.6%
  • +
+
+
+
+
+ + + +

Daily Time on Site

+
+5:39 +7.00% +
+ +
    +
  • 7%
  • +
+
+
+
+
+
+
+
+
+

+How engaged are visitors to this site?
+Engagement metrics help you understand how interested a site's visitors are with the site's content. The metrics are updated daily based on the trailing 3 months. +

+

+Bounce Rate (%)
+Percentage of visits to the site that consist of a single pageview. +

+

+Daily Pageviews per Visitor
+Estimated daily unique pageviews per visitor on the site. +

+

+Daily Time on Site
+Estimated daily time on site (mm:ss) per visitor to the site. +

+
+ +

Who visits github.com?

+
+
+

+Audience Demographics +

+

How similar is this site's audience to the general internet population?

+
+
+
+ +
+
+Gender +
+
+ +Male + + +
+ + +  + + + + +  + + + + + + + +Relative to the general internet population, Males are over-represented at this site.

Confidence: high
+ +
+
+
+
+
+
+ +Female + + +
+ + +  + + + + +  + + + + + + + +Relative to the general internet population, Females are under-represented at this site.

Confidence: high
+ +
+
+
+
+
+
+
+ +
+
+Education +
+
+ +No College + + +
+ + +  + + + + +  + + + + + + + +Relative to the general internet population, people who did not go to college are over-represented at this site.

Confidence: high
+ +
+
+
+
+
+
+ +Some College + + +
+ + +  + + + + +  + + + + + + + +Relative to the general internet population, people with some college education are over-represented at this site.

Confidence: high
+ +
+
+
+
+
+
+ +Graduate School + + +
+ + +  + + + + +  + + + + + + + +The audience for this site among people who went to graduate school is similar to the general internet population.

Confidence: high
+ +
+
+
+
+
+
+ +College + + +
+ + +  + + + + +  + + + + + + + +Relative to the general internet population, people who went to college are under-represented at this site.

Confidence: high
+ +
+
+
+
+
+
+
+ +
+
+Browsing Location +
+
+ +Home + + +
+ + +  + + + + +  + + + + + + + +Relative to the general internet population, people browsing from home are under-represented at this site.

Confidence: high
+ +
+
+
+
+
+
+ +School + + +
+ + +  + + + + +  + + + + + + + +Relative to the general internet population, people browsing from school are greatly over-represented at this site.

Confidence: high
+ +
+
+
+
+
+
+ +Work + + +
+ + +  + + + + +  + + + + + + + +The audience for this site among people browsing from work is similar to the general internet population.

Confidence: high
+ +
+
+
+
+
+
+
+
+
+ +Upgrade to the Alexa Pro Insight Plan to view all demographics including age, income, ethnicity and children. + +Upgrade to View +
+
+ + +  + + +
+ +
+

Upgrade to view all demographics

+
+

Gain access to:

+
    +
  • - Age, income, children, ethnicity
      in additon to gender, education and browsing location.
  • +
  • - Comparisons of website demographics.
  • +
+
+
+

Upgrade to the Alexa Pro Insight Plan to
view all demographics.

+Upgrade +
+
+ +
+

Already have a subscription?

+

Login with your Alexa Account

+
+
+
+ + +
+
+ + + + + + +
+
+
+
+ + + + + +Forgot your password? + + +
+
+
+
+
+
+
+
+
+
+
+
+

+Audience Demographics
+The audience demographics data comes from voluntary demographics information submitted by people in our global traffic panel. The data is for the past 12 months, updated monthly. +Learn more +

+

The demographics data consists of:

+

+

+

+

+Audience Geography
+The audience geography data describes where visitors to this site over the past month are located, and how the site is ranked in popular countries. If a country is not listed, it is because Alexa does not have enough data for this site to rank/measure the site's popularity among that country's online population. These metrics are updated monthly. +

+
+
+
+

+Audience Geography +

+

Where are this site's visitors located?

+
+
+ +

Visitors by Country

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CountryPercent of VisitorsRank in Country
United States Flag  United States 21.3% 197
India Flag  India 12.4% 132
China Flag  China 4.6% 369
Brazil Flag  Brazil 3.6% 185
Japan Flag  Japan 3.5% 324
France Flag  France 3.4% 210
Russia Flag  Russia 3.4% 320
United Kingdom Flag  United Kingdom 2.9% 231
Germany Flag  Germany 2.7% 338
Spain Flag  Spain 2.5% 214
+
+
+
+ +

Where do github.com's visitors come from?

+ +
+

+Search Traffic +

+

What percentage of visits to this site come from a search engine?

+
+ + + +

Search Visits

+
+17.90% +5.00% +
+ +
    +
  • -5%
  • +
+
+
+
+
+ +
+

+Top Keywords from Search Engines +

+

Which search keywords send traffic to this site?

+
+ + + + + + + + + + + + + + + + + + + +
KeywordPercent of Search Traffic
  1.  github 2.57%
  2.  bootstrap 0.98%
  3.  cgminer 0.63%
  4.  laravel 0.51%
  5.  font awesome 0.42%
+
+ +Upgrade to the Alexa Pro Advanced Plan to view all keyword data. + +Upgrade to View +
+
+ + +  + + +
+ +
+

Upgrade to view all keyword data

+

Get more insight into your competitors' keyword strategy.

+
+

Gain access to:

+
    +
  • - Top organic keywords.
  • +
  • - Top paid keywords.
  • +
  • - Keyword competition.
  • +
  • - Keyword opportunities.
  • +
+
+
+

Upgrade to the Alexa Pro Advanced Plan to
view all keyword data.

+Upgrade +
+
+ +
+

Already have a subscription?

+

Login with your Alexa Account

+
+
+
+ + +
+
+ + + + + + +
+
+
+
+ + + + + +Forgot your password? + + +
+
+
+
+
+
+
+
+
+
+
+

+Search Traffic
+The percentage of traffic, both free and paid, that come to this site from a search engine over the past 3 months, updated daily. The change number shows the difference versus the previous 3 month period. +

+

+Top Keywords from Search Engines
+The table shows the top keywords that sent traffic to this site from major search engines over the past 6 months. The list is updated monthly. +

+

+Upstream Sites
+Upstream sites are sites that people visited just before they visited this site. Note that this list is not the same as referrals from upstream sites. There is not necessarily a link between the upstream site and this site. +

+
+
+
+ +
+

+Upstream Sites +

+

Which sites did people visit immediately before this site?

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SitePercent of Unique Visits
  1.  google.com 12.5%
  2.  stackoverflow.com 4.8%
  3.  github.io 2.9%
  4.  facebook.com 2.3%
  5.  google.co.in 1.9%
  6.  youtube.com 1.1%
  7.  githubusercontent.com 1.0%
  8.  twitter.com 0.9%
  9.  google.com.tr 0.8%
10.  google.com.vn 0.8%
+ +
+
+
+ +

Where do github.com's visitors go next?

+
+
+ +Upgrade to the Alexa Pro Insight Plan to view downstream sites. + +Upgrade to View +
+
+ + +  + + +
+ +
+

Upgrade to view downstream sites

+
+

Gain access to:

+
    +
  • - The top 10 sites visitors went to next.
  • +
+
+
+

Upgrade to the Alexa Pro Insight Plan to
view downstream sites.

+Upgrade +
+
+ +
+

Already have a subscription?

+

Login with your Alexa Account

+
+
+
+ + +
+
+ + + + + + +
+
+
+
+ + + + + +Forgot your password? + + +
+
+
+
+
+
+
+
+
+
+

+Downstream sites are sites that people visit immediately after visiting this site. Note this does not necessarily mean that people are directed to the downstream site by this site

+
+

What sites link to github.com?

+ +
+
Total Sites Linking In
+83,625 +
+
+

+
+ + + + + + + + + + + + + + + + + + + +
SitePage
1. youtube.com youtube.com/channel/UCZnwOxM6jQSfsftjm...
2. baidu.com anquan.baidu.com/bbs/thread-86532-1-1....
3. pconline.com.cn pcedu.pconline.com.cn/323/3234394.html
4. yahoo.com answers.yahoo.com/question/index?qid=2...
5. taobao.com taobao.com/go/chn/snsdkjs/guide.php?sp...
+
+ +Upgrade to the Alexa Pro Basic Plan to view all 83,625 sites linking in. + +Upgrade to View +
+
+ + +  + + +
+ +
+

Upgrade to view all 83,625 sites linking in

+

Subscribe to view all sites linking in

+
+

Gain access to:

+
    +
  • - Get the full list of sites linking in for any site.
  • +
  • - Benchmark your link-building efforts.
  • +
  • - See who is linking to your competitors.
  • +
+
+
+

Upgrade to the Alexa Pro Basic Plan to
view all 83,625 sites linking in.

+Upgrade +
+
+ +
+

Already have a subscription?

+

Login with your Alexa Account

+
+
+
+ + +
+
+ + + + + + +
+
+
+
+ + + + + +Forgot your password? + + +
+
+
+
+
+
+
+
+
+
+

The "Sites Linking In" count shows the number of sites that Alexa found that link to this site. +For more information please see this explanation of +how Alexa determines the number of sites linking in.

+

The complete list of sites linking to this site is available to Alexa Pro subscribers.

+
+

What sites are related to github.com?

+
+ +

Where do visitors go on github.com?

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SubdomainPercent of Visitors
github.com 95.35%
gist.github.com 9.14%
help.github.com 2.72%
windows.github.com 1.85%
enterprise.github.com 0.62%
mac.github.com 0.44%
developer.github.com 0.44%
status.github.com 0.29%
training.github.com 0.28%
shop.github.com 0.26%
octicons.github.com 0.24%
+
+
+

The table shows the top subdomains for this site ordered by the percentage of visitors +that visited the subdomain over a month. Note that the percentages can add up to more than +100% because a visitor can visit multiple subdomains during the month.

+

Updated Monthly.

+
+

How fast does github.com load?

Fast (1.176 Seconds), 68% of sites are slower.

+
+
+

The reported load time for a website is the median time it takes to load +pages from that site in a real users' web browsers.

+

Alexa takes the median of all the page load times we observe for a site +and then compares that to the same figure for all other sites. For example, +a site in the 98th percentile (Very Fast) has a median load time faster than +98% of all measured sites, while a site in the 2nd percentile (Very Slow) +loads more quickly than only 2% of all sites and is slower than 97% of all sites.

+

The load time of an individual page is how long it takes for the DOM - +the structure of the page - to be loaded. This time doesn't include the time +to load all images and stylesheets, for example.

+

The load time metric is updated monthly.

+
+

Where can I find more info about github.com?

+
+ + + +
+

GitHub

+
+
+

+
+ +

+Site Description +

+

GitHub is the best place to share code with friends, co-workers, classmates, and complete strangers. Over four million people use GitHub to build amazing things together.

+ +
+ +

+Contact +

+
GitHub
88 Colin P Kelly Jr St
San Francisco, CA 94107
USA
support [at] github.com

+
+
+ +
+

To edit your site's public information you need to verify ownership of your site.

+ +
+
+

Customize your site overview page with your logo, plus add links back to your site +and much more! An Enhanced Site Overview is just one of the features you get with +an Alexa PRO subscription.

+ +
+
+
+

+Site Description
+A short description of the site. +

+

+Contact
+How to contact the owner of the site. +

+
+ +
+
+ + + +
+
+
+
+
+
+

To edit your site's public information you need to sign in and verify ownership of your site.

+
+
+
+
+
+ + + + + + + + + + + + + + + diff --git a/tests/bootstrap.php b/tests/bootstrap.php index 344a1a5a..295c0fb9 100644 --- a/tests/bootstrap.php +++ b/tests/bootstrap.php @@ -4,3 +4,5 @@ $loader = require __DIR__.'/../vendor/autoload.php'; $loader->add('SEOstatsTest', __DIR__ . '/SEOstatsTest'); + +error_reporting(E_ALL); diff --git a/tests/phpunit.xml b/tests/phpunit.xml index 0fc217e0..be3b07f4 100644 --- a/tests/phpunit.xml +++ b/tests/phpunit.xml @@ -10,6 +10,7 @@ processIsolation="false" stopOnFailure="false" syntaxCheck="false" + verbose="true" >