2
0
forked from Wavyzz/dolibarr
Files
dolibarr-fork/htdocs/includes/stripe/tests/Stripe/Util/UtilTest.php
2018-03-07 19:26:06 +01:00

91 lines
2.6 KiB
PHP

<?php
namespace Stripe;
class UtilTest extends TestCase
{
public function testIsList()
{
$list = [5, 'nstaoush', []];
$this->assertTrue(Util\Util::isList($list));
$notlist = [5, 'nstaoush', [], 'bar' => 'baz'];
$this->assertFalse(Util\Util::isList($notlist));
}
public function testThatPHPHasValueSemanticsForArrays()
{
$original = ['php-arrays' => 'value-semantics'];
$derived = $original;
$derived['php-arrays'] = 'reference-semantics';
$this->assertSame('value-semantics', $original['php-arrays']);
}
public function testConvertStripeObjectToArrayIncludesId()
{
$customer = Util\Util::convertToStripeObject([
'id' => 'cus_123',
'object' => 'customer',
], null);
$this->assertTrue(array_key_exists("id", $customer->__toArray(true)));
}
public function testUtf8()
{
// UTF-8 string
$x = "\xc3\xa9";
$this->assertSame(Util\Util::utf8($x), $x);
// Latin-1 string
$x = "\xe9";
$this->assertSame(Util\Util::utf8($x), "\xc3\xa9");
// Not a string
$x = true;
$this->assertSame(Util\Util::utf8($x), $x);
}
public function testUrlEncode()
{
$a = [
'my' => 'value',
'that' => ['your' => 'example'],
'bar' => 1,
'baz' => null
];
$enc = Util\Util::urlEncode($a);
$this->assertSame('my=value&that%5Byour%5D=example&bar=1', $enc);
$a = ['that' => ['your' => 'example', 'foo' => null]];
$enc = Util\Util::urlEncode($a);
$this->assertSame('that%5Byour%5D=example', $enc);
$a = ['that' => 'example', 'foo' => ['bar', 'baz']];
$enc = Util\Util::urlEncode($a);
$this->assertSame('that=example&foo%5B%5D=bar&foo%5B%5D=baz', $enc);
$a = [
'my' => 'value',
'that' => ['your' => ['cheese', 'whiz', null]],
'bar' => 1,
'baz' => null
];
$enc = Util\Util::urlEncode($a);
$expected = 'my=value&that%5Byour%5D%5B%5D=cheese'
. '&that%5Byour%5D%5B%5D=whiz&bar=1';
$this->assertSame($expected, $enc);
// Ignores an empty array
$enc = Util\Util::urlEncode(['foo' => [], 'bar' => 'baz']);
$expected = 'bar=baz';
$this->assertSame($expected, $enc);
$a = ['foo' => [['bar' => 'baz'], ['bar' => 'bin']]];
$enc = Util\Util::urlEncode($a);
$this->assertSame('foo%5B0%5D%5Bbar%5D=baz&foo%5B1%5D%5Bbar%5D=bin', $enc);
}
}