#!perl
use Cassandane::Tiny;

sub test_blob_upload_type
    :min_version_3_7 :JMAPExtensions
    ($self)
{
    my $jmap = $self->{jmap};

    xlog "Assert client-supplied type is returned";
    my $res = $jmap->Upload("blob1", "text/plain");
    $self->assert_str_equals("text/plain", $res->{type});

    xlog "Assert client-supplied type is normalized";
    $res = $jmap->Upload("blob1", "text/plain;charset=latin1");
    $self->assert_str_equals("text/plain", $res->{type});

    xlog "Assert default server type";
    my $upload_res = $jmap->upload({
        accountId => 'cassandane',
        blob      => \"blob2",
        type      => '', # XXX Bogus?
    });

    my $http_res = $upload_res->http_response;

    $res = eval { decode_json($http_res->decoded_content(charset => undef)) };
    $self->assert_str_equals("application/octet-stream", $res->{type});
}
