[MediaWiki-commits] [Gerrit] mediawiki/core[master]: Add tests for ApiCheckToken

2017-12-31 Thread jenkins-bot (Code Review)
jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/401192 )

Change subject: Add tests for ApiCheckToken
..


Add tests for ApiCheckToken

Bug: T183768
Change-Id: I63ab0413252c7333f73b881995869454c4881a57
---
A tests/phpunit/includes/api/ApiCheckTokenTest.php
1 file changed, 95 insertions(+), 0 deletions(-)

Approvals:
  Legoktm: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/tests/phpunit/includes/api/ApiCheckTokenTest.php 
b/tests/phpunit/includes/api/ApiCheckTokenTest.php
new file mode 100644
index 000..f1d95d0
--- /dev/null
+++ b/tests/phpunit/includes/api/ApiCheckTokenTest.php
@@ -0,0 +1,95 @@
+doApiRequest( [
+   'action' => 'query',
+   'meta' => 'tokens',
+   ] );
+
+   $data = $this->doApiRequest( [
+   'action' => 'checktoken',
+   'type' => 'csrf',
+   'token' => $tokens[0]['query']['tokens']['csrftoken'],
+   ], $tokens[1]->getSessionArray() );
+
+   $this->assertEquals( 'valid', $data[0]['checktoken']['result'] 
);
+   $this->assertArrayHasKey( 'generated', $data[0]['checktoken'] );
+   }
+
+   /**
+* Test result of checking invalid token
+*/
+   public function testCheckTokenInvalid() {
+   $session = [];
+   $data = $this->doApiRequest( [
+   'action' => 'checktoken',
+   'type' => 'csrf',
+   'token' => 'invalid_token',
+   ], $session );
+
+   $this->assertEquals( 'invalid', 
$data[0]['checktoken']['result'] );
+   }
+
+   /**
+* Test result of checking token with negative max age (should be 
expired)
+*/
+   public function testCheckTokenExpired() {
+   // Query token which will be checked later
+   $tokens = $this->doApiRequest( [
+   'action' => 'query',
+   'meta' => 'tokens',
+   ] );
+
+   $data = $this->doApiRequest( [
+   'action' => 'checktoken',
+   'type' => 'csrf',
+   'token' => $tokens[0]['query']['tokens']['csrftoken'],
+   'maxtokenage' => -1,
+   ], $tokens[1]->getSessionArray() );
+
+   $this->assertEquals( 'expired', 
$data[0]['checktoken']['result'] );
+   $this->assertArrayHasKey( 'generated', $data[0]['checktoken'] );
+   }
+
+   /**
+* Test if using token with incorrect suffix will produce a warning
+*/
+   public function testCheckTokenSuffixWarning() {
+   // Query token which will be checked later
+   $tokens = $this->doApiRequest( [
+   'action' => 'query',
+   'meta' => 'tokens',
+   ] );
+
+   // Get token and change the suffix
+   $token = $tokens[0]['query']['tokens']['csrftoken'];
+   $token = substr( $token, 0, -strlen( Token::SUFFIX ) ) . 
urldecode( Token::SUFFIX );
+
+   $data = $this->doApiRequest( [
+   'action' => 'checktoken',
+   'type' => 'csrf',
+   'token' => $token,
+   'errorformat' => 'raw',
+   ], $tokens[1]->getSessionArray() );
+
+   $this->assertEquals( 'invalid', 
$data[0]['checktoken']['result'] );
+   $this->assertArrayHasKey( 'warnings', $data[0] );
+   $this->assertCount( 1, $data[0]['warnings'] );
+   $this->assertEquals( 'checktoken', 
$data[0]['warnings'][0]['module'] );
+   $this->assertEquals( 'checktoken-percentencoding', 
$data[0]['warnings'][0]['code'] );
+   }
+
+}

-- 
To view, visit https://gerrit.wikimedia.org/r/401192
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I63ab0413252c7333f73b881995869454c4881a57
Gerrit-PatchSet: 5
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Phantom42 
Gerrit-Reviewer: Legoktm 
Gerrit-Reviewer: Phantom42 
Gerrit-Reviewer: jenkins-bot <>

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] mediawiki/core[master]: Add tests for ApiCheckToken

2017-12-31 Thread Phantom42 (Code Review)
Phantom42 has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/401192 )

Change subject: Add tests for ApiCheckToken
..

Add tests for ApiCheckToken

Bug: T183768
Change-Id: I63ab0413252c7333f73b881995869454c4881a57
---
A tests/phpunit/includes/api/ApiCheckTokenTest.php
1 file changed, 65 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/92/401192/1

diff --git a/tests/phpunit/includes/api/ApiCheckTokenTest.php 
b/tests/phpunit/includes/api/ApiCheckTokenTest.php
new file mode 100644
index 000..02a5abe
--- /dev/null
+++ b/tests/phpunit/includes/api/ApiCheckTokenTest.php
@@ -0,0 +1,65 @@
+doApiRequest( [
+'action' => 'query',
+'meta' => 'tokens',
+] );
+
+$data = $this->doApiRequest( [
+'action' => 'checktoken',
+'type' => 'csrf',
+'token' => $tokens[0]['query']['tokens']['csrftoken'],
+], $tokens[1]->getSessionArray() );
+
+$this->assertEquals( 'valid', $data[0]['checktoken']['result'] );
+$this->assertTrue( isset( $data[0]['checktoken']['generated'] ) );
+}
+
+/**
+ * Test result of checking invalid token
+ */
+public function testCheckTokenInvalid() {
+$session = [];
+$data = $this->doApiRequest( [
+'action' => 'checktoken',
+'type' => 'csrf',
+'token' => 'invalid_token',
+], $session );
+
+$this->assertEquals( 'invalid', $data[0]['checktoken']['result'] );
+}
+
+/**
+ * Test result of checking token with negative max age (should be expired)
+ */
+public function testCheckTokenExpired() {
+// Query token which will be checked later
+$tokens = $this->doApiRequest( [
+'action' => 'query',
+'meta' => 'tokens',
+] );
+
+$data = $this->doApiRequest( [
+'action' => 'checktoken',
+'type' => 'csrf',
+'token' => $tokens[0]['query']['tokens']['csrftoken'],
+'maxtokenage' => -1,
+], $tokens[1]->getSessionArray() );
+
+$this->assertEquals( 'expired', $data[0]['checktoken']['result'] );
+$this->assertTrue( isset( $data[0]['checktoken']['generated'] ) );
+}
+
+}

-- 
To view, visit https://gerrit.wikimedia.org/r/401192
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I63ab0413252c7333f73b881995869454c4881a57
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Phantom42 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits