Gitweb links:
...log
http://git.netsurf-browser.org/netsurf.git/shortlog/f39d78dc2e7d4b75e09223f5b3e92c43d24772e4
...commit
http://git.netsurf-browser.org/netsurf.git/commit/f39d78dc2e7d4b75e09223f5b3e92c43d24772e4
...tree
http://git.netsurf-browser.org/netsurf.git/tree/f39d78dc2e7d4b75e09223f5b3e92c43d24772e4
The branch, master has been updated
via f39d78dc2e7d4b75e09223f5b3e92c43d24772e4 (commit)
via 0866314d9675c09b4b3d0db9e777f132b7c0aae7 (commit)
from 93e2b4855ba5b16a507e75dc533500efcc91e065 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff
http://git.netsurf-browser.org/netsurf.git/commit/?id=f39d78dc2e7d4b75e09223f5b3e92c43d24772e4
commit f39d78dc2e7d4b75e09223f5b3e92c43d24772e4
Author: Vincent Sanders <[email protected]>
Commit: Vincent Sanders <[email protected]>
mimimal mime sniffing test
diff --git a/content/mimesniff.c b/content/mimesniff.c
index 68f3fbd..9a11834 100644
--- a/content/mimesniff.c
+++ b/content/mimesniff.c
@@ -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 {
diff --git a/test/Makefile b/test/Makefile
index 1f884dc..65d74a8 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -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)
diff --git a/test/mimesniff.c b/test/mimesniff.c
new file mode 100644
index 0000000..3e69589
--- /dev/null
+++ b/test/mimesniff.c
@@ -0,0 +1,95 @@
+/*
+ * Copyright 2016 Vincent Sanders <[email protected]>
+ *
+ * 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;
+}
commitdiff
http://git.netsurf-browser.org/netsurf.git/commit/?id=0866314d9675c09b4b3d0db9e777f132b7c0aae7
commit 0866314d9675c09b4b3d0db9e777f132b7c0aae7
Author: Vincent Sanders <[email protected]>
Commit: Vincent Sanders <[email protected]>
reduce hlcache handle api usage in mimesniff
diff --git a/content/content_factory.c b/content/content_factory.c
index 2242207..935354a 100644
--- a/content/content_factory.c
+++ b/content/content_factory.c
@@ -125,12 +125,14 @@ static const content_handler *content_lookup(lwc_string
*mime_type)
for (entry = content_handlers; entry != NULL; entry = entry->next) {
if (lwc_string_caseless_isequal(mime_type, entry->mime_type,
- &match) == lwc_error_ok && match)
+ &match) == lwc_error_ok && match) {
break;
+ }
}
- if (entry != NULL)
+ if (entry != NULL) {
return entry->handler;
+ }
return NULL;
}
diff --git a/content/hlcache.c b/content/hlcache.c
index 95edd21..731c0bb 100644
--- a/content/hlcache.c
+++ b/content/hlcache.c
@@ -421,7 +421,7 @@ static nserror hlcache_llcache_callback(llcache_handle
*handle,
switch (event->type) {
case LLCACHE_EVENT_HAD_HEADERS:
- error = mimesniff_compute_effective_type(handle, NULL, 0,
+ error =
mimesniff_compute_effective_type(llcache_handle_get_header(handle,
"Content-Type"), NULL, 0,
ctx->flags & HLCACHE_RETRIEVE_SNIFF_TYPE,
ctx->accepted_types == CONTENT_IMAGE,
&effective_type);
@@ -444,7 +444,7 @@ static nserror hlcache_llcache_callback(llcache_handle
*handle,
break;
case LLCACHE_EVENT_HAD_DATA:
- error = mimesniff_compute_effective_type(handle,
+ error =
mimesniff_compute_effective_type(llcache_handle_get_header(handle,
"Content-Type"),
event->data.data.buf, event->data.data.len,
ctx->flags & HLCACHE_RETRIEVE_SNIFF_TYPE,
ctx->accepted_types == CONTENT_IMAGE,
@@ -463,7 +463,7 @@ static nserror hlcache_llcache_callback(llcache_handle
*handle,
case LLCACHE_EVENT_DONE:
/* DONE event before we could determine the effective MIME type.
*/
- error = mimesniff_compute_effective_type(handle,
+ error =
mimesniff_compute_effective_type(llcache_handle_get_header(handle,
"Content-Type"),
NULL, 0, false, false, &effective_type);
if (error == NSERROR_OK || error == NSERROR_NOT_FOUND) {
error = hlcache_migrate_ctx(ctx, effective_type);
diff --git a/content/mimesniff.c b/content/mimesniff.c
index 8323200..68f3fbd 100644
--- a/content/mimesniff.c
+++ b/content/mimesniff.c
@@ -31,7 +31,6 @@
#include "utils/corestrings.h"
#include "content/content_factory.h"
-#include "content/llcache.h"
#include "content/mimesniff.h"
struct map_s {
@@ -547,7 +546,7 @@ static nserror mimesniff__compute_feed_or_html(const
uint8_t *data,
}
/* See mimesniff.h for documentation */
-nserror mimesniff_compute_effective_type(llcache_handle *handle,
+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)
{
@@ -564,18 +563,16 @@ nserror mimesniff_compute_effective_type(llcache_handle
*handle,
};
#undef S
- const char *content_type_header;
size_t content_type_header_len;
http_content_type *ct;
const struct tt_s *tt;
bool match;
nserror error;
- content_type_header =
- llcache_handle_get_header(handle, "Content-Type");
if (content_type_header == NULL) {
- if (sniff_allowed == false)
+ if (sniff_allowed == false) {
return NSERROR_NOT_FOUND;
+ }
/* No official type => unknown */
return mimesniff__compute_unknown(data, len, effective_type);
diff --git a/content/mimesniff.h b/content/mimesniff.h
index 474f7b8..faecab8 100644
--- a/content/mimesniff.h
+++ b/content/mimesniff.h
@@ -37,7 +37,7 @@ struct llcache_handle;
* The implementation uses the sniffing algorithm described in
* http://mimesniff.spec.whatwg.org/
*
- * \param handle Source data handle to sniff
+ * \param content_type_header Source content type header
* \param data First data chunk, or NULL
* \param len Length of \a data, in bytes
* \param sniff_allowed Whether MIME type sniffing is allowed
@@ -48,7 +48,7 @@ struct llcache_handle;
* NSERROR_NOT_FOUND if sniffing is prohibited and no
* Content-Type header was found
*/
-nserror mimesniff_compute_effective_type(struct llcache_handle *handle,
+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);
-----------------------------------------------------------------------
Summary of changes:
content/content_factory.c | 6 ++-
content/hlcache.c | 6 +--
content/mimesniff.c | 17 ++++----
content/mimesniff.h | 4 +-
test/Makefile | 11 +++++-
test/mimesniff.c | 95 +++++++++++++++++++++++++++++++++++++++++++++
6 files changed, 123 insertions(+), 16 deletions(-)
create mode 100644 test/mimesniff.c
diff --git a/content/content_factory.c b/content/content_factory.c
index 2242207..935354a 100644
--- a/content/content_factory.c
+++ b/content/content_factory.c
@@ -125,12 +125,14 @@ static const content_handler *content_lookup(lwc_string
*mime_type)
for (entry = content_handlers; entry != NULL; entry = entry->next) {
if (lwc_string_caseless_isequal(mime_type, entry->mime_type,
- &match) == lwc_error_ok && match)
+ &match) == lwc_error_ok && match) {
break;
+ }
}
- if (entry != NULL)
+ if (entry != NULL) {
return entry->handler;
+ }
return NULL;
}
diff --git a/content/hlcache.c b/content/hlcache.c
index 95edd21..731c0bb 100644
--- a/content/hlcache.c
+++ b/content/hlcache.c
@@ -421,7 +421,7 @@ static nserror hlcache_llcache_callback(llcache_handle
*handle,
switch (event->type) {
case LLCACHE_EVENT_HAD_HEADERS:
- error = mimesniff_compute_effective_type(handle, NULL, 0,
+ error =
mimesniff_compute_effective_type(llcache_handle_get_header(handle,
"Content-Type"), NULL, 0,
ctx->flags & HLCACHE_RETRIEVE_SNIFF_TYPE,
ctx->accepted_types == CONTENT_IMAGE,
&effective_type);
@@ -444,7 +444,7 @@ static nserror hlcache_llcache_callback(llcache_handle
*handle,
break;
case LLCACHE_EVENT_HAD_DATA:
- error = mimesniff_compute_effective_type(handle,
+ error =
mimesniff_compute_effective_type(llcache_handle_get_header(handle,
"Content-Type"),
event->data.data.buf, event->data.data.len,
ctx->flags & HLCACHE_RETRIEVE_SNIFF_TYPE,
ctx->accepted_types == CONTENT_IMAGE,
@@ -463,7 +463,7 @@ static nserror hlcache_llcache_callback(llcache_handle
*handle,
case LLCACHE_EVENT_DONE:
/* DONE event before we could determine the effective MIME type.
*/
- error = mimesniff_compute_effective_type(handle,
+ error =
mimesniff_compute_effective_type(llcache_handle_get_header(handle,
"Content-Type"),
NULL, 0, false, false, &effective_type);
if (error == NSERROR_OK || error == NSERROR_NOT_FOUND) {
error = hlcache_migrate_ctx(ctx, effective_type);
diff --git a/content/mimesniff.c b/content/mimesniff.c
index 8323200..9a11834 100644
--- a/content/mimesniff.c
+++ b/content/mimesniff.c
@@ -31,7 +31,6 @@
#include "utils/corestrings.h"
#include "content/content_factory.h"
-#include "content/llcache.h"
#include "content/mimesniff.h"
struct map_s {
@@ -547,9 +546,13 @@ static nserror mimesniff__compute_feed_or_html(const
uint8_t *data,
}
/* See mimesniff.h for documentation */
-nserror mimesniff_compute_effective_type(llcache_handle *handle,
- 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 {
@@ -564,18 +567,16 @@ nserror mimesniff_compute_effective_type(llcache_handle
*handle,
};
#undef S
- const char *content_type_header;
size_t content_type_header_len;
http_content_type *ct;
const struct tt_s *tt;
bool match;
nserror error;
- content_type_header =
- llcache_handle_get_header(handle, "Content-Type");
if (content_type_header == NULL) {
- if (sniff_allowed == false)
+ if (sniff_allowed == false) {
return NSERROR_NOT_FOUND;
+ }
/* No official type => unknown */
return mimesniff__compute_unknown(data, len, effective_type);
diff --git a/content/mimesniff.h b/content/mimesniff.h
index 474f7b8..faecab8 100644
--- a/content/mimesniff.h
+++ b/content/mimesniff.h
@@ -37,7 +37,7 @@ struct llcache_handle;
* The implementation uses the sniffing algorithm described in
* http://mimesniff.spec.whatwg.org/
*
- * \param handle Source data handle to sniff
+ * \param content_type_header Source content type header
* \param data First data chunk, or NULL
* \param len Length of \a data, in bytes
* \param sniff_allowed Whether MIME type sniffing is allowed
@@ -48,7 +48,7 @@ struct llcache_handle;
* NSERROR_NOT_FOUND if sniffing is prohibited and no
* Content-Type header was found
*/
-nserror mimesniff_compute_effective_type(struct llcache_handle *handle,
+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);
diff --git a/test/Makefile b/test/Makefile
index 1f884dc..65d74a8 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -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)
diff --git a/test/mimesniff.c b/test/mimesniff.c
new file mode 100644
index 0000000..3e69589
--- /dev/null
+++ b/test/mimesniff.c
@@ -0,0 +1,95 @@
+/*
+ * Copyright 2016 Vincent Sanders <[email protected]>
+ *
+ * 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;
+}
--
NetSurf Browser
_______________________________________________
netsurf-commits mailing list
[email protected]
http://listmaster.pepperfish.net/cgi-bin/mailman/listinfo/netsurf-commits-netsurf-browser.org