michael@0: /* Any copyright is dedicated to the Public Domain. michael@0: http://creativecommons.org/publicdomain/zero/1.0/ */ michael@0: michael@0: "use strict"; michael@0: const Cu = Components.utils; michael@0: const { devtools } = Cu.import("resource://gre/modules/devtools/Loader.jsm", {}); michael@0: michael@0: Object.defineProperty(this, "NetworkHelper", { michael@0: get: function() { michael@0: return devtools.require("devtools/toolkit/webconsole/network-helper"); michael@0: }, michael@0: configurable: true, michael@0: writeable: false, michael@0: enumerable: true michael@0: }); michael@0: michael@0: function run_test() { michael@0: test_isTextMimeType(); michael@0: } michael@0: michael@0: function test_isTextMimeType () { michael@0: do_check_eq(NetworkHelper.isTextMimeType("text/plain"), true); michael@0: do_check_eq(NetworkHelper.isTextMimeType("application/javascript"), true); michael@0: do_check_eq(NetworkHelper.isTextMimeType("application/json"), true); michael@0: do_check_eq(NetworkHelper.isTextMimeType("text/css"), true); michael@0: do_check_eq(NetworkHelper.isTextMimeType("text/html"), true); michael@0: do_check_eq(NetworkHelper.isTextMimeType("image/svg+xml"), true); michael@0: do_check_eq(NetworkHelper.isTextMimeType("application/xml"), true); michael@0: michael@0: // Test custom JSON subtype michael@0: do_check_eq(NetworkHelper.isTextMimeType("application/vnd.tent.posts-feed.v0+json"), true); michael@0: do_check_eq(NetworkHelper.isTextMimeType("application/vnd.tent.posts-feed.v0-json"), true); michael@0: // Test custom XML subtype michael@0: do_check_eq(NetworkHelper.isTextMimeType("application/vnd.tent.posts-feed.v0+xml"), true); michael@0: do_check_eq(NetworkHelper.isTextMimeType("application/vnd.tent.posts-feed.v0-xml"), false); michael@0: // Test case-insensitive michael@0: do_check_eq(NetworkHelper.isTextMimeType("application/vnd.BIG-CORP+json"), true); michael@0: // Test non-text type michael@0: do_check_eq(NetworkHelper.isTextMimeType("image/png"), false); michael@0: // Test invalid types michael@0: do_check_eq(NetworkHelper.isTextMimeType("application/foo-+json"), false); michael@0: do_check_eq(NetworkHelper.isTextMimeType("application/-foo+json"), false); michael@0: do_check_eq(NetworkHelper.isTextMimeType("application/foo--bar+json"), false); michael@0: michael@0: // Test we do not cause internal errors with unoptimized regex. Bug 961097 michael@0: do_check_eq(NetworkHelper.isTextMimeType("application/vnd.google.safebrowsing-chunk"), false); michael@0: }