|
| 1 | +using Test |
| 2 | + |
| 3 | +const larry = "data:image/gif;base64,R0lGODdhMAAwAPAAAAAAAP///ywAAAAAMAAwAAAC8IyPqcvt3wCcDkiLc7C0qwyGHhSWpjQu5yqmCYsapyuvUUlvONmOZtfzgFzByTB10QgxOR0TqBQejhRNzOfkVJ+5YiUqrXF5Y5lKh/DeuNcP5yLWGsEbtLiOSpa/TPg7JpJHxyendzWTBfX0cxOnKPjgBzi4diinWGdkF8kjdfnycQZXZeYGejmJlZeGl9i2icVqaNVailT6F5iJ90m6mvuTS4OK05M0vDk0Q4XUtwvKOzrcd3iq9uisF81M1OIcR7lEewwcLp7tuNNkM3uNna3F2JQFo97Vriy/Xl4/f1cf5VWzXyym7PHhhx4dbgYKAAA7" |
| 4 | +const greek_characters = "data:text/plain;charset=iso-8859-7,%be%fg%be" |
| 5 | +const brief_note = "data:,A%20brief%20note" |
| 6 | + |
| 7 | + |
| 8 | +@testset "Data URI" begin |
| 9 | + @testset "parsing" begin |
| 10 | + @testset "larry" begin |
| 11 | + data_uri = DataURI(larry) |
| 12 | + @test data_uri.mediatype == MIME"image/gif" |
| 13 | + @test data_uri.isbase64 |
| 14 | + @test length(data_uri.parameters) == 0 |
| 15 | + end |
| 16 | + |
| 17 | + @testset "greek_characters" begin |
| 18 | + data_uri = DataURI(greek_characters) |
| 19 | + @test data_uri.mediatype == MIME"text/plain" |
| 20 | + @test !data_uri.isbase64 |
| 21 | + @test getdata(data_uri) == "%be%fg%be" |
| 22 | + @test length(data_uri.parameters) == 1 |
| 23 | + @test data_uri.parameters[1][1] == "charset" |
| 24 | + @test data_uri.parameters[1][2] == "iso-8859-7" |
| 25 | + end |
| 26 | + |
| 27 | + @testset "brief_note" begin |
| 28 | + data_uri = DataURI(brief_note) |
| 29 | + @test data_uri.mediatype == MIME"" |
| 30 | + @test !data_uri.isbase64 |
| 31 | + @test getdata(data_uri) == "A%20brief%20note" |
| 32 | + @test length(data_uri.parameters) == 0 |
| 33 | + end |
| 34 | + |
| 35 | + @testset "img_pluto" begin |
| 36 | + open("resources/sample_data_uri/img_pluto.txt") do f |
| 37 | + content = read(f, String) |
| 38 | + data_uri = DataURI(content) |
| 39 | + @test data_uri.mediatype == MIME"image/jpeg" |
| 40 | + @test data_uri.isbase64 |
| 41 | + @test length(data_uri.parameters) == 0 |
| 42 | + end |
| 43 | + end |
| 44 | + |
| 45 | + @testset "audio_meow" begin |
| 46 | + open("resources/sample_data_uri/audio_meow.txt") do f |
| 47 | + content = read(f, String) |
| 48 | + data_uri = DataURI(content) |
| 49 | + @test data_uri.mediatype == MIME"audio/mpeg" |
| 50 | + @test data_uri.isbase64 |
| 51 | + @test length(data_uri.parameters) == 0 |
| 52 | + end |
| 53 | + end |
| 54 | + end |
| 55 | + |
| 56 | + @testset "creating" begin |
| 57 | + @testset "larry" begin |
| 58 | + data_uri = DataURI(; mediatype=MIME"image/gif", encoded=true, data="R0lGODdhMAAwAPAAAAAAAP///ywAAAAAMAAwAAAC8IyPqcvt3wCcDkiLc7C0qwyGHhSWpjQu5yqmCYsapyuvUUlvONmOZtfzgFzByTB10QgxOR0TqBQejhRNzOfkVJ+5YiUqrXF5Y5lKh/DeuNcP5yLWGsEbtLiOSpa/TPg7JpJHxyendzWTBfX0cxOnKPjgBzi4diinWGdkF8kjdfnycQZXZeYGejmJlZeGl9i2icVqaNVailT6F5iJ90m6mvuTS4OK05M0vDk0Q4XUtwvKOzrcd3iq9uisF81M1OIcR7lEewwcLp7tuNNkM3uNna3F2JQFo97Vriy/Xl4/f1cf5VWzXyym7PHhhx4dbgYKAAA7") |
| 59 | + @test data_uri.uri == larry |
| 60 | + end |
| 61 | + |
| 62 | + @testset "greek_characters" begin |
| 63 | + data_uri = DataURI(; mediatype=MIME"text/plain", data="%be%fg%be", parameters=["charset" => "iso-8859-7"]) |
| 64 | + @test data_uri.uri == greek_characters |
| 65 | + end |
| 66 | + |
| 67 | + @testset "greek_characters using default mediatype" begin |
| 68 | + data_uri = DataURI(; data="%be%fg%be", parameters=["charset" => "iso-8859-7"]) |
| 69 | + @test data_uri.uri == greek_characters |
| 70 | + end |
| 71 | + |
| 72 | + @testset "brief_note" begin |
| 73 | + data_uri = DataURI(; mediatype=MIME"", data="A%20brief%20note") |
| 74 | + @test data_uri.uri == brief_note |
| 75 | + end |
| 76 | + end |
| 77 | + |
| 78 | +end |
0 commit comments