mimimal mime sniffing test

This commit is contained in:
Vincent Sanders 2017-03-20 00:48:11 +00:00
parent 0866314d96
commit f39d78dc2e
3 changed files with 112 additions and 4 deletions

View File

@ -546,9 +546,13 @@ static nserror mimesniff__compute_feed_or_html(const uint8_t *data,
}
/* See mimesniff.h for documentation */
nserror mimesniff_compute_effective_type(const char *content_type_header,
const uint8_t *data, size_t len, bool sniff_allowed,
bool image_only, lwc_string **effective_type)
nserror
mimesniff_compute_effective_type(const char *content_type_header,
const uint8_t *data,
size_t len,
bool sniff_allowed,
bool image_only,
lwc_string **effective_type)
{
#define S(s) { s, SLEN(s) }
static const struct tt_s {

View File

@ -10,7 +10,8 @@ TESTS := \
urlescape \
utils \
messages \
time #llcache
time \
mimesniff #llcache
# nsurl sources
nsurl_SRCS := utils/corestrings.c utils/nsurl/nsurl.c \
@ -62,6 +63,14 @@ utils_SRCS := utils/utils.c utils/messages.c utils/hashtable.c \
# time test sources
time_SRCS := utils/time.c test/log.c test/time.c
# mimesniff test sources
mimesniff_SRCS := utils/hashtable.c utils/nsurl/nsurl.c utils/hashtable.c \
utils/nsurl/parse.c utils/corestrings.c utils/idna.c utils/punycode.c \
utils/http/generics.c utils/http/content-type.c \
utils/http/primitives.c utils/messages.c utils/http/parameter.c \
content/mimesniff.c \
test/log.c test/mimesniff.c
# Coverage builds need additional flags
COV_ROOT := build/$(HOST)-coverage
ifeq ($(MAKECMDGOALS),coverage)

95
test/mimesniff.c Normal file
View File

@ -0,0 +1,95 @@
/*
* Copyright 2016 Vincent Sanders <vince@netsurf-browser.org>
*
* This file is part of NetSurf, http://www.netsurf-browser.org/
*
* NetSurf is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; version 2 of the License.
*
* NetSurf is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/**
* \file
* Test mime sniffing
*/
#include <assert.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <check.h>
#include "content/content_factory.h"
#include "content/mimesniff.h"
/* helpers */
content_type content_factory_type_from_mime_type(lwc_string *mime_type)
{
content_type type = CONTENT_NONE;
return type;
}
START_TEST(mimesniff_api_test)
{
nserror err;
lwc_string *effective_type;
err = mimesniff_compute_effective_type(NULL,
NULL,
0,
false,
false,
&effective_type);
ck_assert(err == NSERROR_NOT_FOUND);
}
END_TEST
static TCase *mimesniff_case_create(void)
{
TCase *tc;
tc = tcase_create("mimesniff");
tcase_add_test(tc, mimesniff_api_test);
return tc;
}
static Suite *mimesniff_suite_create(void)
{
Suite *s;
s = suite_create("mime sniffing");
suite_add_tcase(s, mimesniff_case_create());
return s;
}
int main(int argc, char **argv)
{
int number_failed;
SRunner *sr;
sr = srunner_create(mimesniff_suite_create());
srunner_run_all(sr, CK_ENV);
number_failed = srunner_ntests_failed(sr);
srunner_free(sr);
return (number_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
}