From d56abb27b8ede04ee6728e051f277cb0c13b1310 Mon Sep 17 00:00:00 2001 From: Francis Lavoie Date: Fri, 20 Sep 2019 16:47:28 -0400 Subject: [PATCH] Fix tests, can't use image fixture it seems --- composer.json | 2 +- tests/GoogleAuthenticatorTest.php | 11 +++++++---- tests/fixtures/qr-code-url.txt | 1 - 3 files changed, 8 insertions(+), 6 deletions(-) delete mode 100644 tests/fixtures/qr-code-url.txt diff --git a/composer.json b/composer.json index 476dd4b..dc539c4 100644 --- a/composer.json +++ b/composer.json @@ -28,7 +28,7 @@ "endroid/qr-code": "^2" }, "require-dev": { - "phpunit/phpunit": "^6" + "phpunit/phpunit": "^5 || ^6" }, "config": { "sort-packages": true diff --git a/tests/GoogleAuthenticatorTest.php b/tests/GoogleAuthenticatorTest.php index 7460fb1..b99b19a 100644 --- a/tests/GoogleAuthenticatorTest.php +++ b/tests/GoogleAuthenticatorTest.php @@ -9,12 +9,9 @@ class GoogleAuthenticatorTest extends \PHPUnit\Framework\TestCase /* @var GoogleAuthenticator $googleAuthenticator */ protected $googleAuthenticator; - protected $qrCodeUrl; - protected function setUp() { $this->googleAuthenticator = new GoogleAuthenticator(); - $this->qrCodeUrl = trim(file_get_contents(__DIR__ . '/fixtures/qr-code-url.txt')); } public function testItCanBeInstantiated() @@ -100,7 +97,13 @@ public function testGetQRCodeUrl() $name = 'Test'; $url = $this->googleAuthenticator->getQRCodeUrl($name, $secret); - $this->assertEquals($url, $this->qrCodeUrl); + $prefix = 'data:image/png;base64,'; + + $this->assertStringStartsWith($prefix, $url); + + $base64part = substr($url, strlen($prefix)); + + $this->assertRegExp("#^[a-zA-Z0-9/+]*={0,2}$#", $base64part); } /** diff --git a/tests/fixtures/qr-code-url.txt b/tests/fixtures/qr-code-url.txt deleted file mode 100644 index 6334521..0000000 --- a/tests/fixtures/qr-code-url.txt +++ /dev/null @@ -1 +0,0 @@ -data:image/png;base64,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7UZph1IKvMMmdHjNqiYEJJqsXAOK668sBIFibf9yws4aCl7sNZ0yJxsDagDzDCTOpqzupCNnEIEid7MBppfq76FDhz7+8Y/nkLWjr69v7dq1sb327duHTkIDTj75ZIngo48++o1vfCN2rCuuuEI6qz377LOrCxprN2zYsG7dOrbXM888E8uDc27p0qULFy5kH1100UUOVFYwrv3t3/7to48+GjvW5z//+Q996EPVNar9vvKVr2zfvp3tdeedd55++unoZtX9s5/97Isvvsj2evXVVyU2Vq1aJb1l/PGPf/ztt99mH11//fXSj+1K36j8a14VSL3GjBkT2qCDNuU3ZItj3rx5EufKIdqmTZskgosWLZLOFhM81jm3bNkydPgoHS7DsdK+sljBqlWr6KG5NIPhYvHixQljwa8sRufstb8hi3RSXSi/IasAvSELBW/iN2SzSjs/AM49giSUDeVRLc1wjTajkplk96bonlWjqyC4J9aSd9jyZxNRjpILblDla0NfpxVE7maDFxag3QTc7UE3E6akiVW+tLroJqBC2P0MumTNGSuHSVcopqCQ0ajmy2w2OLI+6yZQ/HOdWxT0wkit9qYRNCgmMFAKNO0gtZStMqLKFrpWzB89UG46fmUdyIayB4W6biLoiO6cuk4NGnljvTFTLmhPkqK6EINQYkQTh+qLTGSGnlKcoKq1OeSukWC8yV9LJLOB7CC4E3uzlmC4LhUd0GaxMlaR4VhQP4FqocrJYSMtsBY3nuLRQUGZ35BFN7uMFjnLgzdReDMWGE62/ljQJEnHou2LQ1r7JewHWBCCbFSAgCVAET3ArYtGo3yZf1p1XcyhEg++8wzExdguRJTXRXGojNK1AOTJBgyqOYswkxaDoPOUWnIHn2zaPgv8GDNMoPocTJ069dvf/nbsQLt37/7Upz7FPtq5c+dHPvIR9tG555771a9+lSrOe3/++edLL/Dt3r37D//wD9lH+o/S2kEVRbP6H//xH0u/6/ov//Iv//7v/548rpN9GDJWXd92223SyfVf/dVfSW9VfuUrX1m9ejX76LnnnpPYu+2226Tjnd27d0u9LKARVsG6deuqN2RThlEg9arekKXt9QNZ9Buy8IwMnhKij2ln+fPnz/fyq5rScW3xN2TDgayEqNdjfeobstWBLNSwwo90JA0VmPaVxd0E/A1ZJIJyIBve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