diff options
Diffstat (limited to 'comm/mail/components/addrbook/test/browser/data')
-rw-r--r-- | comm/mail/components/addrbook/test/browser/data/addressbook.sjs | 47 | ||||
-rw-r--r-- | comm/mail/components/addrbook/test/browser/data/addressbooks.sjs | 62 | ||||
-rw-r--r-- | comm/mail/components/addrbook/test/browser/data/auth_headers.sjs | 26 | ||||
-rw-r--r-- | comm/mail/components/addrbook/test/browser/data/dns.sjs | 48 | ||||
-rw-r--r-- | comm/mail/components/addrbook/test/browser/data/photo1.jpg | bin | 0 -> 36775 bytes | |||
-rw-r--r-- | comm/mail/components/addrbook/test/browser/data/photo2.jpg | bin | 0 -> 38826 bytes | |||
-rw-r--r-- | comm/mail/components/addrbook/test/browser/data/principal.sjs | 38 | ||||
-rw-r--r-- | comm/mail/components/addrbook/test/browser/data/redirect_auto.sjs | 21 | ||||
-rw-r--r-- | comm/mail/components/addrbook/test/browser/data/token.sjs | 36 |
9 files changed, 278 insertions, 0 deletions
diff --git a/comm/mail/components/addrbook/test/browser/data/addressbook.sjs b/comm/mail/components/addrbook/test/browser/data/addressbook.sjs new file mode 100644 index 0000000000..bd28437261 --- /dev/null +++ b/comm/mail/components/addrbook/test/browser/data/addressbook.sjs @@ -0,0 +1,47 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, you can obtain one at http://mozilla.org/MPL/2.0/. */ + +function handleRequest(request, response) { + if (!request.hasHeader("Authorization")) { + response.setStatusLine("1.1", 401, "Unauthorized"); + response.setHeader("WWW-Authenticate", `Basic realm="test"`); + return; + } + + response.setStatusLine("1.1", 207, "Multi-Status"); + response.setHeader("Content-Type", "text/xml", false); + + // Request: + // <propfind> + // <prop> + // <resourcetype/> + // <getetag/> + // <getctag/> + // </prop> + // </propfind> + + response.write(`<multistatus xmlns="DAV:" + xmlns:card="urn:ietf:params:xml:ns:carddav" + xmlns:cs="http://calendarserver.org/ns/"> + <response> + <href>/browser/comm/mail/components/addrbook/test/browser/data/addressbook.sjs</href> + <propstat> + <prop> + <resourcetype> + <collection/> + <card:addressbook/> + </resourcetype> + <cs:getctag>0</cs:getctag> + </prop> + <status>HTTP/1.1 200 OK</status> + </propstat> + <propstat> + <prop> + <getetag/> + </prop> + <status>HTTP/1.1 404 Not Found</status> + </propstat> + </response> + </multistatus>`); +} diff --git a/comm/mail/components/addrbook/test/browser/data/addressbooks.sjs b/comm/mail/components/addrbook/test/browser/data/addressbooks.sjs new file mode 100644 index 0000000000..0380dee3ab --- /dev/null +++ b/comm/mail/components/addrbook/test/browser/data/addressbooks.sjs @@ -0,0 +1,62 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, you can obtain one at http://mozilla.org/MPL/2.0/. */ + +function handleRequest(request, response) { + if (!request.hasHeader("Authorization")) { + response.setStatusLine("1.1", 401, "Unauthorized"); + response.setHeader("WWW-Authenticate", `Basic realm="test"`); + return; + } + + response.setStatusLine("1.1", 207, "Multi-Status"); + response.setHeader("Content-Type", "text/xml", false); + + // Request: + // <propfind> + // <prop> + // <resourcetype/> + // <displayname/> + // <current-user-privilege-set/> + // </prop> + // </propfind> + + response.write(`<multistatus xmlns="DAV:" xmlns:card="urn:ietf:params:xml:ns:carddav"> + <response> + <href>/browser/comm/mail/components/addrbook/test/browser/data/addressbooks.sjs</href> + <propstat> + <prop> + <resourcetype> + <collection/> + </resourcetype> + <displayname>Things found by DNS</displayname> + </prop> + <status>HTTP/1.1 200 OK</status> + </propstat> + <propstat> + <prop> + <current-user-privilege-set/> + </prop> + <status>HTTP/1.1 404 Not Found</status> + </propstat> + </response> + <response> + <href>/browser/comm/mail/components/addrbook/test/browser/data/addressbook.sjs</href> + <propstat> + <prop> + <resourcetype> + <collection/> + <card:addressbook/> + </resourcetype> + <displayname>You found me!</displayname> + <current-user-privilege-set> + <privilege> + <all/> + </privilege> + </current-user-privilege-set> + </prop> + <status>HTTP/1.1 200 OK</status> + </propstat> + </response> + </multistatus>`); +} diff --git a/comm/mail/components/addrbook/test/browser/data/auth_headers.sjs b/comm/mail/components/addrbook/test/browser/data/auth_headers.sjs new file mode 100644 index 0000000000..640d2acc54 --- /dev/null +++ b/comm/mail/components/addrbook/test/browser/data/auth_headers.sjs @@ -0,0 +1,26 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ */ + +// Echoes request headers as JSON so a test can check what was sent. + +/* eslint-disable-next-line mozilla/reject-importGlobalProperties */ +Cu.importGlobalProperties(["URLSearchParams"]); + +function handleRequest(request, response) { + if (!request.hasHeader("Authorization")) { + response.setStatusLine("1.1", 401, "Unauthorized"); + response.setHeader("WWW-Authenticate", `Basic realm="test"`); + return; + } + + response.setHeader("Content-Type", "application/json", false); + + let headers = {}; + let enumerator = request.headers; + while (enumerator.hasMoreElements()) { + let header = enumerator.getNext().data; + headers[header.toLowerCase()] = request.getHeader(header); + } + + response.write(JSON.stringify(headers)); +} diff --git a/comm/mail/components/addrbook/test/browser/data/dns.sjs b/comm/mail/components/addrbook/test/browser/data/dns.sjs new file mode 100644 index 0000000000..11121cce7c --- /dev/null +++ b/comm/mail/components/addrbook/test/browser/data/dns.sjs @@ -0,0 +1,48 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, you can obtain one at http://mozilla.org/MPL/2.0/. */ + +function handleRequest(request, response) { + if (!request.hasHeader("Authorization")) { + response.setStatusLine("1.1", 401, "Unauthorized"); + response.setHeader("WWW-Authenticate", `Basic realm="test"`); + return; + } + + response.setStatusLine("1.1", 207, "Multi-Status"); + response.setHeader("Content-Type", "text/xml", false); + + // Request: + // <propfind> + // <prop> + // <resourcetype/> + // <displayname/> + // <current-user-principal/> + // <current-user-privilege-set/> + // </prop> + // </propfind> + + response.write(`<multistatus xmlns="DAV:"> + <response> + <href>/browser/comm/mail/components/addrbook/test/browser/data/dns.sjs</href> + <propstat> + <prop> + <resourcetype> + <collection/> + </resourcetype> + <current-user-principal> + <href>/browser/comm/mail/components/addrbook/test/browser/data/principal.sjs</href> + </current-user-principal> + </prop> + <status>HTTP/1.1 200 OK</status> + </propstat> + <propstat> + <prop> + <current-user-principal/> + <current-user-privilege-set/> + </prop> + <status>HTTP/1.1 404 Not Found</status> + </propstat> + </response> + </multistatus>`); +} diff --git a/comm/mail/components/addrbook/test/browser/data/photo1.jpg b/comm/mail/components/addrbook/test/browser/data/photo1.jpg Binary files differnew file mode 100644 index 0000000000..35608787bf --- /dev/null +++ b/comm/mail/components/addrbook/test/browser/data/photo1.jpg diff --git a/comm/mail/components/addrbook/test/browser/data/photo2.jpg b/comm/mail/components/addrbook/test/browser/data/photo2.jpg Binary files differnew file mode 100644 index 0000000000..41fd1e90fc --- /dev/null +++ b/comm/mail/components/addrbook/test/browser/data/photo2.jpg diff --git a/comm/mail/components/addrbook/test/browser/data/principal.sjs b/comm/mail/components/addrbook/test/browser/data/principal.sjs new file mode 100644 index 0000000000..659cd3cd91 --- /dev/null +++ b/comm/mail/components/addrbook/test/browser/data/principal.sjs @@ -0,0 +1,38 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, you can obtain one at http://mozilla.org/MPL/2.0/. */ + +function handleRequest(request, response) { + if (!request.hasHeader("Authorization")) { + response.setStatusLine("1.1", 401, "Unauthorized"); + response.setHeader("WWW-Authenticate", `Basic realm="test"`); + return; + } + + response.setStatusLine("1.1", 207, "Multi-Status"); + response.setHeader("Content-Type", "text/xml", false); + + // Request: + // <propfind> + // <prop> + // <addressbook-home-set/> + // </prop> + // </propfind> + + response.write(`<multistatus xmlns="DAV:" xmlns:card="urn:ietf:params:xml:ns:carddav"> + <response> + <href>/browser/comm/mail/components/addrbook/test/browser/data/principal.sjs</href> + <propstat> + <prop> + <resourcetype> + <principal/> + </resourcetype> + <card:addressbook-home-set> + <href>/browser/comm/mail/components/addrbook/test/browser/data/addressbooks.sjs</href> + </card:addressbook-home-set> + </prop> + <status>HTTP/1.1 200 OK</status> + </propstat> + </response> + </multistatus>`); +} diff --git a/comm/mail/components/addrbook/test/browser/data/redirect_auto.sjs b/comm/mail/components/addrbook/test/browser/data/redirect_auto.sjs new file mode 100644 index 0000000000..a9285c21d0 --- /dev/null +++ b/comm/mail/components/addrbook/test/browser/data/redirect_auto.sjs @@ -0,0 +1,21 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ */ + +// Serves as the authorisation endpoint for OAuth2 testing. + +/* eslint-disable-next-line mozilla/reject-importGlobalProperties */ +Cu.importGlobalProperties(["URLSearchParams", "URL"]); + +function handleRequest(request, response) { + let params = new URLSearchParams(request.queryString); + + if (request.method == "POST") { + response.setStatusLine(request.httpVersion, 303, "Redirected"); + } else { + response.setStatusLine(request.httpVersion, 302, "Moved Temporarily"); + } + + let url = new URL(params.get("redirect_uri")); + url.searchParams.set("code", "success"); + response.setHeader("Location", url.href); +} diff --git a/comm/mail/components/addrbook/test/browser/data/token.sjs b/comm/mail/components/addrbook/test/browser/data/token.sjs new file mode 100644 index 0000000000..e070f8d55f --- /dev/null +++ b/comm/mail/components/addrbook/test/browser/data/token.sjs @@ -0,0 +1,36 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ */ + +// Serves as the token endpoint for OAuth2 testing. + +/* eslint-disable-next-line mozilla/reject-importGlobalProperties */ +Cu.importGlobalProperties(["URLSearchParams"]); + +function handleRequest(request, response) { + let stream = Cc["@mozilla.org/binaryinputstream;1"].createInstance( + Ci.nsIBinaryInputStream + ); + stream.setInputStream(request.bodyInputStream); + + let input = stream.readBytes(request.bodyInputStream.available()); + let params = new URLSearchParams(input); + + response.setHeader("Content-Type", "application/json", false); + + if (params.get("refresh_token") == "expired_token") { + response.setStatusLine("1.1", 400, "Bad Request"); + response.write(JSON.stringify({ error: "invalid_grant" })); + return; + } + + let data = { access_token: "bobs_access_token" }; + + if (params.get("code") == "success") { + // Authorisation just happened, set a different access token so the test + // can detect it, and provide a refresh token. + data.access_token = "new_access_token"; + data.refresh_token = "new_refresh_token"; + } + + response.write(JSON.stringify(data)); +} |