Files
2025-03-05 14:10:06 +09:00

125 lines
2.8 KiB
PHP

<?php
namespace HybridauthTest\Hybridauth\Storage;
use Hybridauth\Storage\Session;
session_start(); // they will hate me for this..
class SessionTest extends \PHPUnit\Framework\TestCase
{
public function some_random_session_data()
{
return [
['foo', 'bar'],
[1234, 'bar'],
['foo', 1234],
['Bonjour', '안녕하세요'],
['ஹலோ', 'Γεια σας'],
['array', [1, 2, 3]],
['string', json_encode($this)],
['object', $this],
['provider.token.request_token', '9DYPEJ&qhvhP3eJ!'],
['provider.token.oauth_token', '80359084-clg1DEtxQF3wstTcyUdHF3wsdHM'],
['provider.token.oauth_token_secret', 'qiHTi1znz6qiH3tTcyUdHnz6qiH3tTcyUdH3xW3wsDvV08e'],
];
}
public function test_instance_of()
{
$storage = new Session();
$this->assertInstanceOf('\\Hybridauth\\Storage\\StorageInterface', $storage);
}
/**
* @dataProvider some_random_session_data
* @covers Session::get
* @covers Session::set
*/
public function test_set_and_get_data($key, $value)
{
$storage = new Session();
$storage->set($key, $value);
$data = $storage->get($key);
$this->assertEquals($value, $data);
}
/**
* @dataProvider some_random_session_data
* @covers Session::delete
*/
public function test_delete_data($key, $value)
{
$storage = new Session();
$storage->set($key, $value);
$storage->delete($key);
$data = $storage->get($key);
$this->assertNull($data);
}
/**
* @dataProvider some_random_session_data
* @covers Session::clear
*/
public function test_clear_data($key, $value)
{
$storage = new Session();
$storage->set($key, $value);
$storage->clear();
$data = $storage->get($key);
$this->assertNull($data);
}
/**
* @covers Session::clear
*/
public function test_clear_data_bulk()
{
$storage = new Session();
foreach ((array)$this->some_random_session_data() as $key => $value) {
$storage->set($key, $value);
}
$storage->clear();
foreach ((array)$this->some_random_session_data() as $key => $value) {
$data = $storage->get($key);
$this->assertNull($data);
}
}
/**
* @dataProvider some_random_session_data
* @covers Session::deleteMatch
*/
public function test_delete_match_data($key, $value)
{
$storage = new Session();
$storage->set($key, $value);
$storage->deleteMatch('provider.token.');
$data = $storage->get('provider.token.request_token');
$this->assertNull($data);
}
}