test/units/srcset_test.rb in imgix-3.1.0 vs test/units/srcset_test.rb in imgix-3.1.1

- old
+ new

@@ -7,10 +7,25 @@ srcset = path.to_srcset() expected_number_of_pairs = 31 assert_equal expected_number_of_pairs, srcset.split(',').length end + def test_srcset_pair_values + resolutions = [100, 116, 134, 156, 182, 210, 244, 282, + 328, 380, 442, 512, 594, 688, 798, 926, + 1074, 1246, 1446, 1678, 1946, 2258, 2618, + 3038, 3524, 4088, 4742, 5500, 6380, 7400, 8192] + srcset = path.to_srcset() + srclist = srcset.split(',').map { |srcset_split| + srcset_split.split(' ')[1].to_i + } + + for i in 0..srclist.length-1 do + assert_equal(srclist[i], resolutions[i]) + end + end + private def path @client ||= Imgix::Client.new(host: 'testing.imgix.net', secure_url_token: 'MYT0KEN', include_library_param: false).path('image.jpg') end end @@ -24,18 +39,33 @@ assert_equal ("#{device_pixel_ratio}x"), ratio device_pixel_ratio += 1 } end + def test_srcset_has_dpr_params + i = 1 + srcset.split(',').map { |srcset_split| + src = srcset_split.split(' ')[0] + assert_includes src, "dpr=#{i}" + i += 1 + } + end + def test_srcset_signs_urls - expected_signature = 'b95cfd915f4a198442bff4ce5befe5b8' + srcset.split(',').map { |srcset_split| + src = srcset_split.split(' ')[0] + assert_includes src, 's=' - srcset.split(',').map { |src| - url = src.split(' ')[0] - assert_includes url, "s=" + # parses out all parameters except for 's=...' + params = src[src.index('?')..src.index('s=')-2] - generated_signature = url.slice(url.index("s=")+2, url.length) + # parses out the 's=...' parameter + generated_signature = src.slice(src.index('s=')+2, src.length) + + signature_base = 'MYT0KEN' + '/image.jpg' + params; + expected_signature = Digest::MD5.hexdigest(signature_base) + assert_equal expected_signature, generated_signature } end private @@ -48,10 +78,24 @@ def test_srcset_generates_width_pairs expected_number_of_pairs = 31 assert_equal expected_number_of_pairs, srcset.split(',').length end + def test_srcset_pair_values + resolutions = [100, 116, 134, 156, 182, 210, 244, 282, + 328, 380, 442, 512, 594, 688, 798, 926, + 1074, 1246, 1446, 1678, 1946, 2258, 2618, + 3038, 3524, 4088, 4742, 5500, 6380, 7400, 8192] + srclist = srcset.split(',').map { |srcset_split| + srcset_split.split(' ')[1].to_i + } + + for i in 0..srclist.length-1 do + assert_equal(srclist[i], resolutions[i]) + end + end + def test_srcset_respects_height_parameter srcset.split(',').map { |src| assert_includes src, 'h=' } end @@ -88,12 +132,12 @@ srcset.split(',').map { |srcset_split| src = srcset_split.split(' ')[0] assert_includes src, 's=' # parses out all parameters except for 's=...' - params = src.slice(src.index('?'), src.length) - params = params.slice(0, params.index('s=')-1) + params = src[src.index('?')..src.index('s=')-2] + # parses out the 's=...' parameter generated_signature = src.slice(src.index('s=')+2, src.length) signature_base = 'MYT0KEN' + '/image.jpg' + params; expected_signature = Digest::MD5.hexdigest(signature_base) @@ -117,18 +161,33 @@ assert_equal ("#{device_pixel_ratio}x"), ratio device_pixel_ratio += 1 } end + def test_srcset_has_dpr_params + i = 1 + srcset.split(',').map { |srcset_split| + src = srcset_split.split(' ')[0] + assert_includes src, "dpr=#{i}" + i += 1 + } + end + def test_srcset_signs_urls - expected_signature = 'fb081a45c449b28f69e012d474943df3' + srcset.split(',').map { |srcset_split| + src = srcset_split.split(' ')[0] + assert_includes src, 's=' - srcset.split(',').map { |src| - url = src.split(' ')[0] - assert_includes url, "s=" + # parses out all parameters except for 's=...' + params = src[src.index('?')..src.index('s=')-2] - generated_signature = url.slice(url.index("s=")+2, url.length) + # parses out the 's=...' parameter + generated_signature = src.slice(src.index('s=')+2, src.length) + + signature_base = 'MYT0KEN' + '/image.jpg' + params; + expected_signature = Digest::MD5.hexdigest(signature_base) + assert_equal expected_signature, generated_signature } end private @@ -141,10 +200,24 @@ def test_srcset_generates_width_pairs expected_number_of_pairs = 31 assert_equal expected_number_of_pairs, srcset.split(',').length end + def test_srcset_pair_values + resolutions = [100, 116, 134, 156, 182, 210, 244, 282, + 328, 380, 442, 512, 594, 688, 798, 926, + 1074, 1246, 1446, 1678, 1946, 2258, 2618, + 3038, 3524, 4088, 4742, 5500, 6380, 7400, 8192] + srclist = srcset.split(',').map { |srcset_split| + srcset_split.split(' ')[1].to_i + } + + for i in 0..srclist.length-1 do + assert_equal(srclist[i], resolutions[i]) + end + end + def test_srcset_within_bounds min, *max = srcset.split(',') # parse out the width descriptor as an integer min = min.split(' ')[1].to_i @@ -175,12 +248,12 @@ srcset.split(',').map { |srcset_split| src = srcset_split.split(' ')[0] assert_includes src, 's=' # parses out all parameters except for 's=...' - params = src.slice(src.index('?'), src.length) - params = params.slice(0, params.index('s=')-1) + params = src[src.index('?')..src.index('s=')-2] + # parses out the 's=...' parameter generated_signature = src.slice(src.index('s=')+2, src.length) signature_base = 'MYT0KEN' + '/image.jpg' + params; expected_signature = Digest::MD5.hexdigest(signature_base) @@ -204,17 +277,32 @@ assert_equal ("#{device_pixel_ratio}x"), ratio device_pixel_ratio += 1 } end + def test_srcset_has_dpr_params + i = 1 + srcset.split(',').map { |srcset_split| + src = srcset_split.split(' ')[0] + assert_includes src, "dpr=#{i}" + i += 1 + } + end + def test_srcset_signs_urls - expected_signature = '84db8cb226483fc0130b4fb58e1e6ff2' + srcset.split(',').map { |srcset_split| + src = srcset_split.split(' ')[0] + assert_includes src, 's=' - srcset.split(',').map { |src| - url = src.split(' ')[0] - assert_includes url, "s=" + # parses out all parameters except for 's=...' + params = src[src.index('?')..src.index('s=')-2] - generated_signature = url.slice(url.index("s=")+2, url.length) + # parses out the 's=...' parameter + generated_signature = src.slice(src.index('s=')+2, src.length) + + signature_base = 'MYT0KEN' + '/image.jpg' + params; + expected_signature = Digest::MD5.hexdigest(signature_base) + assert_equal expected_signature, generated_signature } end private \ No newline at end of file