summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorFrederic Guillot <fred@kanboard.net>2016-12-03 15:43:36 -0500
committerFrederic Guillot <fred@kanboard.net>2016-12-03 15:43:36 -0500
commitb8f7532e5c7e8b8be3ab199fca3dadd0d22be4cd (patch)
tree435eb1e72df595875547547f939493a6a6b7c512 /tests
parent23d862aef8891130bc7eaeaa25513a9895b44c95 (diff)
Add personal API access token
Diffstat (limited to 'tests')
-rw-r--r--tests/units/Auth/ApiAccessTokenAuthTest.php71
1 files changed, 71 insertions, 0 deletions
diff --git a/tests/units/Auth/ApiAccessTokenAuthTest.php b/tests/units/Auth/ApiAccessTokenAuthTest.php
new file mode 100644
index 00000000..22852805
--- /dev/null
+++ b/tests/units/Auth/ApiAccessTokenAuthTest.php
@@ -0,0 +1,71 @@
+<?php
+
+use Kanboard\Auth\ApiAccessTokenAuth;
+use Kanboard\Model\UserModel;
+
+require_once __DIR__.'/../Base.php';
+
+class ApiAccessTokenAuthTest extends Base
+{
+ public function testGetName()
+ {
+ $provider = new ApiAccessTokenAuth($this->container);
+ $this->assertEquals('API Access Token', $provider->getName());
+ }
+
+ public function testAuthenticateWithoutToken()
+ {
+ $provider = new ApiAccessTokenAuth($this->container);
+
+ $provider->setUsername('admin');
+ $provider->setPassword('admin');
+ $this->assertFalse($provider->authenticate());
+ $this->assertNull($provider->getUser());
+ }
+
+ public function testAuthenticateWithEmptyPassword()
+ {
+ $provider = new ApiAccessTokenAuth($this->container);
+
+ $provider->setUsername('admin');
+ $provider->setPassword('');
+ $this->assertFalse($provider->authenticate());
+ }
+
+ public function testAuthenticateWithTokenAndNoScope()
+ {
+ $provider = new ApiAccessTokenAuth($this->container);
+ $userModel = new UserModel($this->container);
+
+ $userModel->update(array(
+ 'id' => 1,
+ 'api_access_token' => 'test',
+ ));
+
+ $provider->setUsername('admin');
+ $provider->setPassword('test');
+ $this->assertFalse($provider->authenticate());
+ }
+
+ public function testAuthenticateWithToken()
+ {
+ $this->container['sessionStorage']->scope = 'API';
+
+ $provider = new ApiAccessTokenAuth($this->container);
+ $userModel = new UserModel($this->container);
+
+ $userModel->update(array(
+ 'id' => 1,
+ 'api_access_token' => 'test',
+ ));
+
+ $provider->setUsername('admin');
+ $provider->setPassword('test');
+ $this->assertTrue($provider->authenticate());
+ $this->assertInstanceOf('Kanboard\User\DatabaseUserProvider', $provider->getUser());
+
+ $provider->setUsername('admin');
+ $provider->setPassword('something else');
+ $this->assertFalse($provider->authenticate());
+ }
+}