initial
This commit is contained in:
commit
4c7995a935
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
/vendor/
|
||||
/report.xml
|
19
composer.json
Normal file
19
composer.json
Normal file
@ -0,0 +1,19 @@
|
||||
{
|
||||
"name": "jhodges/phpunit-base",
|
||||
"type": "library",
|
||||
"authors": [
|
||||
{
|
||||
"name": "James",
|
||||
"email": "inbox.dev@jhodges.co.uk"
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"phpunit/phpunit-selenium": "^4.1",
|
||||
"facebook/webdriver": "^1.7"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"JHodges\\PHPUnitBase\\": "src/"
|
||||
}
|
||||
}
|
||||
}
|
1715
composer.lock
generated
Normal file
1715
composer.lock
generated
Normal file
File diff suppressed because it is too large
Load Diff
23
phpunit.xml
Normal file
23
phpunit.xml
Normal file
@ -0,0 +1,23 @@
|
||||
<phpunit
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/6.3/phpunit.xsd"
|
||||
>
|
||||
|
||||
<logging>
|
||||
<!--log type="coverage-html" target="report/report" lowUpperBound="35" highLowerBound="70"/>
|
||||
<log type="coverage-clover" target="report/coverage.xml"/>
|
||||
<log type="coverage-php" target="report/coverage.serialized"/>
|
||||
<log type="coverage-text" target="php://stdout" showUncoveredFiles="false"/-->
|
||||
<log type="junit" target="report/logfile.xml"/>
|
||||
<log type="testdox-html" target="report/testdox.html"/>
|
||||
<log type="testdox-text" target="report/testdox.txt"/>
|
||||
</logging>
|
||||
|
||||
<php>
|
||||
<env name="SeleniumBrowserUrl" value="https://example.com"/>
|
||||
<env name="SeleniumBrowser" value="firefox"/>
|
||||
<env name="SeleniumWindowSize" value="1024,768"/>
|
||||
<env name="SeleniumScreenshotPath" value="/tmp/"/>
|
||||
</php>
|
||||
|
||||
</phpunit>
|
24
src/BrowserTest.php
Normal file
24
src/BrowserTest.php
Normal file
@ -0,0 +1,24 @@
|
||||
<?php
|
||||
namespace JHodges\PHPUnitBase;
|
||||
|
||||
abstract class BrowserTest extends PHPUnit_Extensions_Selenium2TestCase{
|
||||
|
||||
public function setUp(){
|
||||
$this->setHost('localhost');
|
||||
$this->setPort(4444);
|
||||
$this->setDesiredCapabilities(['moz:firefoxOptions'=>['args'=>['-headless','screenshot','window-size='.getenv('SeleniumWindowSize')]]]);
|
||||
$this->setBrowserUrl(getenv('SeleniumBrowserUrl'));
|
||||
$this->setBrowser(getenv('SeleniumBrowser'));
|
||||
}
|
||||
|
||||
public function tearDown(){
|
||||
if ($this->hasFailed()) {
|
||||
if($path=getenv('SeleniumScreenshotPath')){
|
||||
$filedata = $this->currentScreenshot();
|
||||
file_put_contents($path.$this->getName().'.png', $filedata);
|
||||
}
|
||||
}
|
||||
$this->stop();
|
||||
}
|
||||
|
||||
}
|
72
src/DomainRedirectTest.php
Normal file
72
src/DomainRedirectTest.php
Normal file
@ -0,0 +1,72 @@
|
||||
<?php
|
||||
namespace JHodges\PHPUnitBase;
|
||||
|
||||
abstract class DomainRedirectTest extends UrlRedirectTest{
|
||||
|
||||
/**
|
||||
* @return string the source domain
|
||||
**/
|
||||
abstract protected function getSourceDomain();
|
||||
|
||||
/**
|
||||
* @return string the destination URL
|
||||
**/
|
||||
abstract protected function getDestinationURL();
|
||||
|
||||
/**
|
||||
* Test source domain with HTTP:// redirects correctly to the destination URL
|
||||
**/
|
||||
public function testHttp(){
|
||||
$this->assertUrlRedirect('http://'.$this->getSourceDomain().'',$this->getDestinationURL());
|
||||
}
|
||||
|
||||
/**
|
||||
* Test source domain with HTTPS:// redirects correctly to the destination URL
|
||||
**/
|
||||
public function testHttps(){
|
||||
$this->assertUrlRedirect('https://'.$this->getSourceDomain().'',$this->getDestinationURL());
|
||||
}
|
||||
|
||||
/**
|
||||
* Test source domain with HTTP://WWW. redirects correctly to the destination URL
|
||||
**/
|
||||
public function testHttpWww(){
|
||||
$this->assertUrlRedirect('http://www.'.$this->getSourceDomain().'',$this->getDestinationURL());
|
||||
}
|
||||
|
||||
/**
|
||||
* Test source domain with HTTPS://www. redirects correctly to the destination URL
|
||||
**/
|
||||
public function testHttpsWww(){
|
||||
$this->assertUrlRedirect('https://www.'.$this->getSourceDomain().'',$this->getDestinationURL());
|
||||
}
|
||||
|
||||
/**
|
||||
* Test source domain with HTTP:// and a trailing slash redirects correctly to the destination URL
|
||||
**/
|
||||
public function testHttpSlash(){
|
||||
$this->assertUrlRedirect('http://'.$this->getSourceDomain().'/',$this->getDestinationURL());
|
||||
}
|
||||
|
||||
/**
|
||||
* Test source domain with HTTPS:// and a trailing slash redirects correctly to the destination URL
|
||||
**/
|
||||
public function testHttpsSlash(){
|
||||
$this->assertUrlRedirect('https://'.$this->getSourceDomain().'/',$this->getDestinationURL());
|
||||
}
|
||||
|
||||
/**
|
||||
* Test source domain with HTTP://www. and a trailing slash redirects correctly to the destination URL
|
||||
**/
|
||||
public function testHttpWwwSlash(){
|
||||
$this->assertUrlRedirect('http://www.'.$this->getSourceDomain().'/',$this->getDestinationURL());
|
||||
}
|
||||
|
||||
/**
|
||||
* Test source domain with HTTPS://www. and a trailing slash redirects correctly to the destination URL
|
||||
**/
|
||||
public function testHttpsWwwSlash(){
|
||||
$this->assertUrlRedirect('https://www.'.$this->getSourceDomain().'/',$this->getDestinationURL());
|
||||
}
|
||||
|
||||
}
|
24
src/UrlRedirectTest.php
Normal file
24
src/UrlRedirectTest.php
Normal file
@ -0,0 +1,24 @@
|
||||
<?php
|
||||
namespace JHodges\PHPUnitBase;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
abstract class UrlRedirectTest extends TestCase{
|
||||
|
||||
/**
|
||||
* Test $from redirects to $to
|
||||
* @param string $from source URL
|
||||
* @param string $to dest URL
|
||||
**/
|
||||
public function assertUrlRedirect($from,$to){
|
||||
$ch = curl_init();
|
||||
curl_setopt($ch, CURLOPT_URL, $from);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
|
||||
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
|
||||
$html = curl_exec($ch);
|
||||
$redirectedUrl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
|
||||
curl_close($ch);
|
||||
$this->assertEquals($to,$redirectedUrl,"From: {$from}");
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user