|
1307 | 1307 |
|
1308 | 1308 | it "should use signature version 1 (without parameter encoding) for backward compatibility" do |
1309 | 1309 | public_id_with_ampersand = 'tests/logo&version=2' |
1310 | | - |
| 1310 | + |
1311 | 1311 | expected_signature_v1 = Cloudinary::Utils.api_sign_request( |
1312 | 1312 | { :public_id => public_id_with_ampersand, :version => test_version }, |
1313 | 1313 | SIGNATURE_VERIFICATION_API_SECRET, |
1314 | 1314 | nil, |
1315 | 1315 | 1 |
1316 | 1316 | ) |
1317 | | - |
| 1317 | + |
1318 | 1318 | expected_signature_v2 = Cloudinary::Utils.api_sign_request( |
1319 | 1319 | { :public_id => public_id_with_ampersand, :version => test_version }, |
1320 | 1320 | SIGNATURE_VERIFICATION_API_SECRET, |
1321 | 1321 | nil, |
1322 | 1322 | 2 |
1323 | 1323 | ) |
1324 | | - |
| 1324 | + |
1325 | 1325 | expect(expected_signature_v1).not_to eq(expected_signature_v2) |
1326 | | - |
| 1326 | + |
1327 | 1327 | # verify_api_response_signature should use version 1 for backward compatibility |
1328 | 1328 | expect( |
1329 | 1329 | Cloudinary::Utils.verify_api_response_signature( |
|
1332 | 1332 | expected_signature_v1 |
1333 | 1333 | ) |
1334 | 1334 | ).to be true |
1335 | | - |
| 1335 | + |
1336 | 1336 | expect( |
1337 | 1337 | Cloudinary::Utils.verify_api_response_signature( |
1338 | 1338 | public_id_with_ampersand, |
|
1457 | 1457 | expect(url_from_urls).to include("urls[]=#{url1}") |
1458 | 1458 | expect(url_from_urls).to include("urls[]=#{url2}") |
1459 | 1459 |
|
1460 | | - parameters = CGI::parse(url_from_tag) |
| 1460 | + parameters = parse_query_params(URI(url_from_tag).query) |
1461 | 1461 | expect(parameters["tag"]).to eq([sprite_test_tag]) |
1462 | 1462 | expect(parameters["mode"]).to eq([Cloudinary::Utils::MODE_DOWNLOAD]) |
1463 | 1463 | expect(parameters["timestamp"]).not_to be_nil |
1464 | 1464 | expect(parameters["signature"]).not_to be_nil |
1465 | 1465 |
|
1466 | | - parameters = CGI::parse(url_from_urls) |
| 1466 | + parameters = parse_query_params(URI(url_from_urls).query) |
1467 | 1467 | expect(parameters["mode"]).to eq([Cloudinary::Utils::MODE_DOWNLOAD]) |
1468 | 1468 | expect(parameters["timestamp"]).not_to be_nil |
1469 | 1469 | expect(parameters["signature"]).not_to be_nil |
|
1473 | 1473 | let(:public_id) { 'tests/logo.png' } |
1474 | 1474 | let(:test_version) { 1234 } |
1475 | 1475 | let(:test_api_secret) { SIGNATURE_VERIFICATION_API_SECRET } |
1476 | | - |
| 1476 | + |
1477 | 1477 | before do |
1478 | 1478 | Cloudinary.config.update(:api_secret => test_api_secret) |
1479 | 1479 | end |
1480 | 1480 |
|
1481 | 1481 | describe "api_sign_request signature_version parameter support" do |
1482 | 1482 | it "should support signature_version parameter in api_sign_request" do |
1483 | 1483 | params = { :public_id => public_id, :version => test_version } |
1484 | | - |
| 1484 | + |
1485 | 1485 | signature_v1 = Cloudinary::Utils.api_sign_request(params, test_api_secret, nil, 1) |
1486 | 1486 | signature_v2 = Cloudinary::Utils.api_sign_request(params, test_api_secret, nil, 2) |
1487 | | - |
| 1487 | + |
1488 | 1488 | expect(signature_v1).to be_a(String) |
1489 | 1489 | expect(signature_v2).to be_a(String) |
1490 | 1490 | expect(signature_v1).to eq(signature_v2) # No & in values, so should be the same |
|
1493 | 1493 | it "should use default signature_version from config" do |
1494 | 1494 | Cloudinary.config.signature_version = 2 |
1495 | 1495 | params = { :public_id => public_id, :version => test_version } |
1496 | | - |
| 1496 | + |
1497 | 1497 | signature_with_nil = Cloudinary::Utils.api_sign_request(params, test_api_secret, nil, nil) |
1498 | 1498 | signature_with_v2 = Cloudinary::Utils.api_sign_request(params, test_api_secret, nil, 2) |
1499 | | - |
| 1499 | + |
1500 | 1500 | expect(signature_with_nil).to eq(signature_with_v2) |
1501 | 1501 | end |
1502 | 1502 |
|
1503 | 1503 | it "should default to version 2 when no config is set" do |
1504 | 1504 | Cloudinary.config.signature_version = nil |
1505 | 1505 | params = { :public_id => public_id, :version => test_version } |
1506 | | - |
| 1506 | + |
1507 | 1507 | signature_with_nil = Cloudinary::Utils.api_sign_request(params, test_api_secret, nil, nil) |
1508 | 1508 | signature_with_v2 = Cloudinary::Utils.api_sign_request(params, test_api_secret, nil, 2) |
1509 | | - |
| 1509 | + |
1510 | 1510 | expect(signature_with_nil).to eq(signature_with_v2) |
1511 | 1511 | end |
1512 | 1512 | end |
|
1527 | 1527 | expect(url_from_urls).to include("urls[]=#{url1}") |
1528 | 1528 | expect(url_from_urls).to include("urls[]=#{url2}") |
1529 | 1529 |
|
1530 | | - parameters = CGI::parse(url_from_tag) |
| 1530 | + parameters = parse_query_params(URI(url_from_tag).query) |
1531 | 1531 | expect(parameters["tag"]).to eq([multi_test_tag]) |
1532 | 1532 | expect(parameters["mode"]).to eq([Cloudinary::Utils::MODE_DOWNLOAD]) |
1533 | 1533 | expect(parameters["timestamp"]).not_to be_nil |
1534 | 1534 | expect(parameters["signature"]).not_to be_nil |
1535 | 1535 |
|
1536 | | - parameters = CGI::parse(url_from_urls) |
| 1536 | + parameters = parse_query_params(URI(url_from_urls).query) |
1537 | 1537 | expect(parameters["mode"]).to eq([Cloudinary::Utils::MODE_DOWNLOAD]) |
1538 | 1538 | expect(parameters["timestamp"]).not_to be_nil |
1539 | 1539 | expect(parameters["signature"]).not_to be_nil |
|
0 commit comments