Skip to content
Snippets Groups Projects
Commit 18c4c639 authored by Igor Markin's avatar Igor Markin
Browse files

Update lib and use populate attachments functionality in order to mitigate...

Update lib and use populate attachments functionality in order to mitigate issues with mismatching content ids
parent 01768d76
Branches
Tags
1 merge request!17Populate attachments before normalisation
...@@ -15,11 +15,5 @@ ...@@ -15,11 +15,5 @@
| 13 | 4 replies with test case 05 | ok | ok | ok | | 13 | 4 replies with test case 05 | ok | ok | ok |
| 14 | 4 replies with test case 06 | ok | ok | ok | | 14 | 4 replies with test case 06 | ok | ok | ok |
| 15 | 4 replies with test case 07 | ok | ok | ok | | 15 | 4 replies with test case 07 | ok | ok | ok |
| 16 | 4 replies with test case 08 | fail | fail | fail | | 16 | 4 replies with test case 08 | ok | ok | ok |
| 17 | Multiple forwarded emails using cases 01-08:<br><br>E.g. <br>- User A sends "case 01" to User B<br>- User B forwards "case 02" to User A<br>- User A forwards "case 03" to User B<br>...<br>- User B forwards "case 08" to User A<br>- User A completes circle by forwarding "case 01" to User B | ok | ok | ok | | 17 | Multiple forwarded emails using cases 01-08:<br><br>E.g. <br>- User A sends "case 01" to User B<br>- User B forwards "case 02" to User A<br>- User A forwards "case 03" to User B<br>...<br>- User B forwards "case 08" to User A<br>- User A completes circle by forwarding "case 01" to User B | ok | ok | ok |
### Case 16 failure
- Sent and received emails has a mismatch of the `cid:` values.
How to fix: Populate respective base64 values to plain and html before matching.
...@@ -12,7 +12,7 @@ describe("[HTML] Outlook-Outlook emails normalization", () => { ...@@ -12,7 +12,7 @@ describe("[HTML] Outlook-Outlook emails normalization", () => {
EMAIL_VENDORS.OUTLOOK EMAIL_VENDORS.OUTLOOK
); );
describe("Chrome-Chrome", describeFunction("chrome-chrome", ["16"], [])); describe("Chrome-Chrome", describeFunction("chrome-chrome", [], []));
describe( describe(
"MacOS-MacOS", "MacOS-MacOS",
describeFunction("macos-macos", ["03", "04", "05", "08", "09"]) describeFunction("macos-macos", ["03", "04", "05", "08", "09"])
......
...@@ -13,7 +13,7 @@ describe("[Pseudo PLAIN] Outlook-Outlook normalization", () => { ...@@ -13,7 +13,7 @@ describe("[Pseudo PLAIN] Outlook-Outlook normalization", () => {
EMAIL_VENDORS.OUTLOOK EMAIL_VENDORS.OUTLOOK
); );
describe("Chrome-Chrome", describeFunction("chrome-chrome", ["16"])); describe("Chrome-Chrome", describeFunction("chrome-chrome"));
describe( describe(
"MacOS-MacOS", "MacOS-MacOS",
describeFunction("macos-macos", ["03", "04", "05", "08", "09"]) describeFunction("macos-macos", ["03", "04", "05", "08", "09"])
......
...@@ -8,7 +8,7 @@ const testsPath = path.resolve(__dirname, `.${TESTS_GLOBAL_PATH}`); ...@@ -8,7 +8,7 @@ const testsPath = path.resolve(__dirname, `.${TESTS_GLOBAL_PATH}`);
describe("[Plain] Outlook-Outlook normalization", () => { describe("[Plain] Outlook-Outlook normalization", () => {
const describeFunction = createDescribePlainTestCases(testsPath); const describeFunction = createDescribePlainTestCases(testsPath);
describe("Chrome-Chrome", describeFunction("chrome-chrome", ["16"])); describe("Chrome-Chrome", describeFunction("chrome-chrome"));
describe("MacOS-MacOS", describeFunction("macos-macos")); describe("MacOS-MacOS", describeFunction("macos-macos"));
describe( describe(
"Windows-Windows", "Windows-Windows",
......
...@@ -46,10 +46,10 @@ export const getNormalizedPlain = ( ...@@ -46,10 +46,10 @@ export const getNormalizedPlain = (
const receivedMime = getMime(`${testCasePath}/${RECEIVED_EML_NAME}`); const receivedMime = getMime(`${testCasePath}/${RECEIVED_EML_NAME}`);
const sentNormalizedPlain = PlainNormalizer.normalizePlain( const sentNormalizedPlain = PlainNormalizer.normalizePlain(
sentMime.getPlain() sentMime.getPlain(true)
); );
const receivedNormalizedPlain = PlainNormalizer.normalizePlain( const receivedNormalizedPlain = PlainNormalizer.normalizePlain(
receivedMime.getPlain() receivedMime.getPlain(true)
); );
return { return {
...@@ -74,8 +74,8 @@ export const getNormalizedHtml = ( ...@@ -74,8 +74,8 @@ export const getNormalizedHtml = (
const sentMime = getMime(`${testCasePath}/${SENT_EML_NAME}`); const sentMime = getMime(`${testCasePath}/${SENT_EML_NAME}`);
const receivedMime = getMime(`${testCasePath}/${RECEIVED_EML_NAME}`); const receivedMime = getMime(`${testCasePath}/${RECEIVED_EML_NAME}`);
const sentHtml = sentMime.getHTML(); const sentHtml = sentMime.getHTML(true);
const receivedHtml = receivedMime.getHTML(); const receivedHtml = receivedMime.getHTML(true);
const sentDOM = new DOM(sentHtml); const sentDOM = new DOM(sentHtml);
const receivedDOM = new JSDOM(receivedHtml); const receivedDOM = new JSDOM(receivedHtml);
...@@ -233,8 +233,8 @@ export const getDOMDocuments = ( ...@@ -233,8 +233,8 @@ export const getDOMDocuments = (
const sentMime = getMime(`${testCasePath}/${SENT_EML_NAME}`); const sentMime = getMime(`${testCasePath}/${SENT_EML_NAME}`);
const receivedMime = getMime(`${testCasePath}/${RECEIVED_EML_NAME}`); const receivedMime = getMime(`${testCasePath}/${RECEIVED_EML_NAME}`);
const sentDOM = new DOM(sentMime.getHTML()); const sentDOM = new DOM(sentMime.getHTML(true));
const receivedDOM = new JSDOM(receivedMime.getHTML()); const receivedDOM = new JSDOM(receivedMime.getHTML(true));
return { return {
sentHtmlDocument: sentDOM.window.document, sentHtmlDocument: sentDOM.window.document,
......
...@@ -1264,7 +1264,10 @@ ...@@ -1264,7 +1264,10 @@
"@vereign/mime-parser@git+ssh://git@code.vereign.com:code/js-toolbox/mime-parser.git": "@vereign/mime-parser@git+ssh://git@code.vereign.com:code/js-toolbox/mime-parser.git":
version "1.0.0" version "1.0.0"
resolved "git+ssh://git@code.vereign.com:code/js-toolbox/mime-parser.git#d48073f6910f7c76b12883beecfb4a23721667bc" resolved "git+ssh://git@code.vereign.com:code/js-toolbox/mime-parser.git#07fa6f0d595416f12baa601b9258acedf91c97c7"
dependencies:
libmime "^5.0.0"
libqp "^1.1.0"
abab@^2.0.3: abab@^2.0.3:
version "2.0.5" version "2.0.5"
...@@ -2021,6 +2024,11 @@ emoji-regex@^8.0.0: ...@@ -2021,6 +2024,11 @@ emoji-regex@^8.0.0:
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
encoding-japanese@1.0.30:
version "1.0.30"
resolved "https://registry.yarnpkg.com/encoding-japanese/-/encoding-japanese-1.0.30.tgz#537c4d62881767925d601acb4c79fb14db81703a"
integrity sha512-bd/DFLAoJetvv7ar/KIpE3CNO8wEuyrt9Xuw6nSMiZ+Vrz/Q21BPsMHvARL2Wz6IKHKXgb+DWZqtRg1vql9cBg==
end-of-stream@^1.1.0: end-of-stream@^1.1.0:
version "1.4.4" version "1.4.4"
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
...@@ -2631,6 +2639,13 @@ iconv-lite@0.4.24: ...@@ -2631,6 +2639,13 @@ iconv-lite@0.4.24:
dependencies: dependencies:
safer-buffer ">= 2.1.2 < 3" safer-buffer ">= 2.1.2 < 3"
iconv-lite@0.6.2:
version "0.6.2"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01"
integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==
dependencies:
safer-buffer ">= 2.1.2 < 3.0.0"
ignore@^4.0.6: ignore@^4.0.6:
version "4.0.6" version "4.0.6"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
...@@ -3448,6 +3463,26 @@ levn@~0.3.0: ...@@ -3448,6 +3463,26 @@ levn@~0.3.0:
prelude-ls "~1.1.2" prelude-ls "~1.1.2"
type-check "~0.3.2" type-check "~0.3.2"
libbase64@1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/libbase64/-/libbase64-1.2.1.tgz#fb93bf4cb6d730f29b92155b6408d1bd2176a8c8"
integrity sha512-l+nePcPbIG1fNlqMzrh68MLkX/gTxk/+vdvAb388Ssi7UuUN31MI44w4Yf33mM3Cm4xDfw48mdf3rkdHszLNew==
libmime@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/libmime/-/libmime-5.0.0.tgz#4759c76eb219985c5d4057b3a9359922194d9ff7"
integrity sha512-2Bm96d5ktnE217Ib1FldvUaPAaOst6GtZrsxJCwnJgi9lnsoAKIHyU0sae8rNx6DNYbjdqqh8lv5/b9poD8qOg==
dependencies:
encoding-japanese "1.0.30"
iconv-lite "0.6.2"
libbase64 "1.2.1"
libqp "1.1.0"
libqp@1.1.0, libqp@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/libqp/-/libqp-1.1.0.tgz#f5e6e06ad74b794fb5b5b66988bf728ef1dedbe8"
integrity sha1-9ebgatdLeU+1tbZpiL9yjvHe2+g=
lines-and-columns@^1.1.6: lines-and-columns@^1.1.6:
version "1.1.6" version "1.1.6"
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00"
...@@ -4258,7 +4293,7 @@ safe-regex@^1.1.0: ...@@ -4258,7 +4293,7 @@ safe-regex@^1.1.0:
dependencies: dependencies:
ret "~0.1.10" ret "~0.1.10"
"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
version "2.1.2" version "2.1.2"
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment