From 48ed1a98f1064180d5f1c460a8c8b16ce90eff85 Mon Sep 17 00:00:00 2001 From: Ben Gotow Date: Wed, 30 Sep 2015 14:28:35 -0700 Subject: [PATCH] fix(mailto): Correct mailto handling when link has `&` instead of first `?` --- spec-nylas/stores/draft-store-spec.coffee | 6 ++++++ src/flux/stores/draft-store.coffee | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/spec-nylas/stores/draft-store-spec.coffee b/spec-nylas/stores/draft-store-spec.coffee index f43f1fc2e..f13b773f9 100644 --- a/spec-nylas/stores/draft-store-spec.coffee +++ b/spec-nylas/stores/draft-store-spec.coffee @@ -852,6 +852,7 @@ describe "DraftStore", -> 'mailto:?subject=%52z2a', # passes uriDecode 'mailto:?subject=Martha Stewart', 'mailto:?subject=Martha Stewart&cc=cc@nylas.com', + 'mailto:bengotow@gmail.com&subject=Martha Stewart&cc=cc@nylas.com', 'mailto:bengotow@gmail.com?subject=Martha%20Stewart&cc=cc@nylas.com&bcc=bcc@nylas.com', 'mailto:bengotow@gmail.com?subject=Martha%20Stewart&cc=cc@nylas.com&bcc=Ben ', 'mailto:Ben Gotow ,Shawn ?subject=Yes this is really valid' @@ -879,6 +880,11 @@ describe "DraftStore", -> cc: [new Contact(name: 'cc@nylas.com', email: 'cc@nylas.com')], subject: 'Martha Stewart' ), + new Message( + to: [new Contact(name: 'bengotow@gmail.com', email: 'bengotow@gmail.com')], + cc: [new Contact(name: 'cc@nylas.com', email: 'cc@nylas.com')], + subject: 'Martha Stewart' + ), new Message( to: [new Contact(name: 'bengotow@gmail.com', email: 'bengotow@gmail.com')], cc: [new Contact(name: 'cc@nylas.com', email: 'cc@nylas.com')], diff --git a/src/flux/stores/draft-store.coffee b/src/flux/stores/draft-store.coffee index 056451e8c..574fb1341 100644 --- a/src/flux/stores/draft-store.coffee +++ b/src/flux/stores/draft-store.coffee @@ -418,7 +418,7 @@ class DraftStore try urlString = decodeURI(urlString) - [whole, to, query] = /mailto:[//]?([^\?]*)[\?]?(.*)/.exec(urlString) + [whole, to, query] = /mailto:[//]?([^\?\&]*)[\?\&]?(.*)/.exec(urlString) query = require('querystring').parse(query) query.to = to