Skip to content

Commit 11a307c

Browse files
Fix Upload API signature
1 parent 7ef9bd4 commit 11a307c

File tree

3 files changed

+55
-13
lines changed

3 files changed

+55
-13
lines changed

src/Api/Utils/ApiUtils.php

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -239,11 +239,10 @@ public static function serializeResponsiveBreakpoints($breakpoints)
239239
*/
240240
public static function serializeQueryParams($parameters = [])
241241
{
242-
return ArrayUtils::safeImplodeAssoc(
242+
return ArrayUtils::implodeAssoc(
243243
$parameters,
244244
self::QUERY_STRING_OUTER_DELIMITER,
245-
self::QUERY_STRING_INNER_DELIMITER,
246-
true
245+
self::QUERY_STRING_INNER_DELIMITER
247246
);
248247
}
249248

tests/Integration/Upload/ContextTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
*/
1818
final class ContextTest extends IntegrationTestCase
1919
{
20-
const CONTEXT_DATA = ['k1' => 'v2', 'k2' => 'v2'];
20+
const CONTEXT_DATA = ['k1' => 'v2', 'k2' => 'vשаß = & | ? !@#$%^&*()_+{}:">?/.,\']['];
2121

2222
/**
2323
* @throws ApiError

tests/Unit/Utils/ApiUtilsTest.php

Lines changed: 52 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@
1111
namespace Cloudinary\Test\Unit\Utils;
1212

1313
use Cloudinary\Api\ApiUtils;
14+
use Cloudinary\Test\Unit\UnitTestCase;
1415
use Cloudinary\Transformation\Format;
1516
use Cloudinary\Transformation\Transformation;
16-
use PHPUnit\Framework\TestCase;
1717

1818
/**
1919
* Class ApiUtilsTest
2020
*/
21-
final class ApiUtilsTest extends TestCase
21+
final class ApiUtilsTest extends UnitTestCase
2222
{
2323
/**
2424
* Data provider for the method `testSerializeArrayOfArrays()`.
@@ -153,31 +153,31 @@ public function dataProviderSerializeContext()
153153
{
154154
return [
155155
[
156-
'value' => '',
156+
'value' => '',
157157
'result' => '',
158158
],
159159
[
160-
'value' => null,
160+
'value' => null,
161161
'result' => '',
162162
],
163163
[
164-
'value' => 0,
164+
'value' => 0,
165165
'result' => '0',
166166
],
167167
[
168-
'value' => [],
168+
'value' => [],
169169
'result' => '',
170170
],
171171
[
172-
'value' => ['!@#$%^&?*-+=[]{}()' => '!@#$%^&?*-+=[]{}()'],
172+
'value' => ['!@#$%^&?*-+=[]{}()' => '!@#$%^&?*-+=[]{}()'],
173173
'result' => '!@#$%^&?*-+\=[]{}()=!@#$%^&?*-+\=[]{}()',
174174
],
175175
[
176-
'value' => ['caption' => 'cap=caps', 'alt' => 'alternative|alt=a'],
176+
'value' => ['caption' => 'cap=caps', 'alt' => 'alternative|alt=a'],
177177
'result' => 'caption=cap\=caps|alt=alternative\|alt\=a',
178178
],
179179
[
180-
'value' => ['caption' => ['cap1', 'cap2'], 'alt' => ['a|"a"', 'b="b"']],
180+
'value' => ['caption' => ['cap1', 'cap2'], 'alt' => ['a|"a"', 'b="b"']],
181181
'result' => 'caption=["cap1","cap2"]|alt=["a\|\"a\"","b\=\"b\""]',
182182
],
183183
];
@@ -198,4 +198,47 @@ public function testSerializeContext($value, $result)
198198
ApiUtils::serializeContext($value)
199199
);
200200
}
201+
202+
/**
203+
* Data provider for the method `testSignParameters()`.
204+
*
205+
* @return array[]
206+
*/
207+
public function dataProviderSignParameters()
208+
{
209+
return [
210+
[
211+
'value' => ['p1' => 'v1'],
212+
'result' => '4cdcfc973f12ab6a9a6ba56595a9c2897bdb8f32',
213+
],
214+
[
215+
'value' => ['p1' => 'v1,v2'],
216+
'result' => '9e06ad20c8a98319b00503edc4053be120017905',
217+
],
218+
[
219+
'value' => ['p1' => ['v1', 'v2']],
220+
'result' => '9e06ad20c8a98319b00503edc4053be120017905',
221+
],
222+
[
223+
'value' => ['p1' => 'v1=v2*|}{ & !@#$%^&*()_;/.,?><\\/|_+a'],
224+
'result' => 'bbdc631f4b490c0ba65722d8dbf9300d1fd98e86',
225+
],
226+
];
227+
}
228+
229+
/**
230+
* Verifies that context data is correctly serialized.
231+
*
232+
* @param $value
233+
* @param $result
234+
*
235+
* @dataProvider dataProviderSignParameters
236+
*/
237+
public function testSignParameters($value, $result)
238+
{
239+
self::assertEquals(
240+
$result,
241+
ApiUtils::signParameters($value, self::API_SECRET)
242+
);
243+
}
201244
}

0 commit comments

Comments
 (0)