@@ -2,33 +2,33 @@ var test = require('tape');
22var utf7 = require ( '..' ) ;
33
44test ( 'test conversion from utf8 to utf7' , function ( assert ) {
5- assert . plan ( 20 ) ;
5+ assert . plan ( 22 ) ;
66
77 // Examples from RFC 2152.
8- assert . equal ( 'A+ImIDkQ-. ' , utf7 . encodeAll ( 'A\u2262\u0391.' ) ) ;
8+ assert . equal ( '+AEEiYgORAC4- ' , utf7 . encodeAll ( 'A\u2262\u0391.' ) ) ;
99 assert . equal ( 'A+ImIDkQ-.' , utf7 . encode ( 'A\u2262\u0391.' ) ) ;
1010
1111 assert . equal ( '+ZeVnLIqe-' , utf7 . encodeAll ( '\u65E5\u672C\u8A9E' ) ) ;
1212 assert . equal ( '+ZeVnLIqe-' , utf7 . encode ( '\u65E5\u672C\u8A9E' ) ) ;
1313
14- assert . equal ( 'Hi Mom -+Jjo--! ' , utf7 . encodeAll ( 'Hi Mom -\u263A-!' ) ) ;
14+ assert . equal ( '+AEgAaQAgAE0AbwBtACAALSY6AC0AIQ- ' , utf7 . encodeAll ( 'Hi Mom -\u263A-!' ) ) ;
1515 assert . equal ( 'Hi Mom -+Jjo--!' , utf7 . encode ( 'Hi Mom -\u263A-!' , ' !' ) ) ;
1616 assert . equal ( 'Hi+ACA-Mom+ACA--+Jjo--+ACE-' , utf7 . encode ( 'Hi Mom -\u263A-!' ) ) ;
1717
18- assert . equal ( 'Item 3 is +AKM-1. ' , utf7 . encodeAll ( 'Item 3 is \u00A31.' ) ) ;
18+ assert . equal ( '+AEkAdABlAG0AIAAzACAAaQBzACAAowAxAC4- ' , utf7 . encodeAll ( 'Item 3 is \u00A31.' ) ) ;
1919 assert . equal ( 'Item 3 is +AKM-1.' , utf7 . encode ( 'Item 3 is \u00A31.' , ' ' ) ) ;
2020 assert . equal ( 'Item+ACA-3+ACA-is+ACAAow-1.' , utf7 . encode ( 'Item 3 is \u00A31.' ) ) ;
2121
2222 // Custom examples that contain more than one mode shift.
2323 assert . equal ( 'Jyv+AOQ-skyl+AOQ-' , utf7 . encode ( 'Jyv\u00E4skyl\u00E4' ) ) ;
24- assert . equal ( 'Jyv+AOQ-skyl+AOQ -' , utf7 . encodeAll ( 'Jyv\u00E4skyl\u00E4' ) ) ;
24+ assert . equal ( '+AEoAeQB2AOQAcwBrAHkAbADk -' , utf7 . encodeAll ( 'Jyv\u00E4skyl\u00E4' ) ) ;
2525
26- assert . equal ( '\'+T2BZfQ-\' hei+AN8-t "Hallo" ' , utf7 . encodeAll ( '\'\u4F60\u597D\' heißt "Hallo"' ) ) ;
26+ assert . equal ( '+ACdPYFl9ACcAIABoAGUAaQDfAHQAIAAiAEgAYQBsAGwAbwAi- ' , utf7 . encodeAll ( '\'\u4F60\u597D\' heißt "Hallo"' ) ) ;
2727 assert . equal ( '\'+T2BZfQ-\' hei+AN8-t "Hallo"' , utf7 . encode ( '\'\u4F60\u597D\' heißt "Hallo"' , ' "' ) ) ;
2828 assert . equal ( '\'+T2BZfQ-\'+ACA-hei+AN8-t+ACAAIg-Hallo+ACI-' , utf7 . encode ( '\'\u4F60\u597D\' heißt "Hallo"' ) ) ;
2929
3030 // The plus sign is represented as +-.
31- assert . equal ( 'Hot +- Spicy +- Fruity ' , utf7 . encodeAll ( 'Hot + Spicy + Fruity' ) ) ;
31+ assert . equal ( '+AEgAbwB0ACAAKwAgAFMAcABpAGMAeQAgACsAIABGAHIAdQBpAHQAeQ- ' , utf7 . encodeAll ( 'Hot + Spicy + Fruity' ) ) ;
3232 assert . equal ( 'Hot +- Spicy +- Fruity' , utf7 . encode ( 'Hot + Spicy + Fruity' , ' ' ) ) ;
3333 assert . equal ( 'Hot+ACAAKwAg-Spicy+ACAAKwAg-Fruity' , utf7 . encode ( 'Hot + Spicy + Fruity' ) ) ;
3434
@@ -37,14 +37,20 @@ test('test conversion from utf8 to utf7', function(assert) {
3737
3838 // + sign around non-ASCII chars
3939 assert . equal ( '+AOQAKwDkACsA5A-' , utf7 . encodeAll ( '\u00E4+\u00E4+\u00E4' ) ) ;
40+
41+ // Some special characters
42+ assert . equal ( '+ACEAIgCnACQAJQAmAC8AKAApAD0APwAnACoAKwAjAC0AXwAuADoALAA7ADwAPgB8AFsAXQBcALQAYABA-' , utf7 . encodeAll ( '!"§$%&/()=?\'*+#-_.:,;<>|[]\\´`@' ) ) ;
43+ assert . equal ( '+ACEAIgCnACQAJQAm-/()+AD0-?\'+ACoAKwAj--+AF8-.:,+ADsAPAA+AHwAWwBdAFwAtABgAEA-' , utf7 . encode ( '!"§$%&/()=?\'*+#-_.:,;<>|[]\\´`@' ) ) ;
4044} ) ;
4145
4246test ( 'test conversion from utf7 to utf8' , function ( assert ) {
43- assert . plan ( 22 ) ;
47+ assert . plan ( 32 ) ;
4448
4549 // Examples from RFC 2152.
4650 assert . equal ( 'A\u2262\u0391.' , utf7 . decode ( 'A+ImIDkQ-.' ) ) ;
4751 assert . equal ( 'A\u2262\u0391.' , utf7 . decode ( 'A+ImIDkQ.' ) ) ;
52+ assert . equal ( 'A\u2262\u0391.' , utf7 . decode ( '+AEEiYgORAC4-' ) ) ;
53+ assert . equal ( 'A\u2262\u0391.' , utf7 . decode ( '+AEEiYgORAC4' ) ) ;
4854
4955 assert . equal ( '\u65E5\u672C\u8A9E' , utf7 . decode ( '+ZeVnLIqe-' ) ) ;
5056 assert . equal ( '\u65E5\u672C\u8A9E' , utf7 . decode ( '+ZeVnLIqe' ) ) ;
@@ -53,6 +59,8 @@ test('test conversion from utf7 to utf8', function(assert) {
5359 assert . equal ( 'Hi Mom -\u263A-!' , utf7 . decode ( 'Hi+ACA-Mom+ACA--+Jjo--+ACE-' ) ) ;
5460 assert . equal ( 'Item 3 is \u00A31.' , utf7 . decode ( 'Item 3 is +AKM-1.' ) ) ;
5561 assert . equal ( 'Item 3 is \u00A31.' , utf7 . decode ( 'Item+ACA-3+ACA-is+ACAAow-1.' ) ) ;
62+ assert . equal ( 'Hi Mom -\u263A-!' , utf7 . decode ( '+AEgAaQAgAE0AbwBtACAALSY6AC0AIQ-' ) ) ;
63+ assert . equal ( 'Hi Mom -\u263A-!' , utf7 . decode ( '+AEgAaQAgAE0AbwBtACAALSY6AC0AIQ' ) ) ;
5664
5765 // Custom examples that contain more than one mode shift.
5866 assert . equal ( 'Jyv\u00E4skyl\u00E4' , utf7 . decode ( 'Jyv+AOQ-skyl+AOQ-' ) ) ;
@@ -61,10 +69,15 @@ test('test conversion from utf7 to utf8', function(assert) {
6169 assert . equal ( '\'\u4F60\u597D\' heißt "Hallo"' , utf7 . decode ( '\'+T2BZfQ\' hei+AN8-t "Hallo"' ) ) ;
6270 assert . equal ( '\'\u4F60\u597D\' heißt "Hallo"' , utf7 . decode ( '\'+T2BZfQ-\'+ACA-hei+AN8-t+ACAAIg-Hallo+ACI-' ) ) ;
6371 assert . equal ( '\'\u4F60\u597D\' heißt "Hallo"' , utf7 . decode ( '\'+T2BZfQ-\'+ACA-hei+AN8-t+ACAAIg-Hallo+ACI' ) ) ;
72+ assert . equal ( '\'\u4F60\u597D\' heißt "Hallo"' , utf7 . decode ( '+ACdPYFl9ACcAIABoAGUAaQDfAHQAIAAiAEgAYQBsAGwAbwAi-' ) ) ;
73+ assert . equal ( '\'\u4F60\u597D\' heißt "Hallo"' , utf7 . decode ( '+ACdPYFl9ACcAIABoAGUAaQDfAHQAIAAiAEgAYQBsAGwAbwAi' ) ) ;
6474
6575 // The plus sign is represented by +-.
6676 assert . equal ( 'Hot + Spicy + Fruity' , utf7 . decode ( 'Hot +- Spicy +- Fruity' ) ) ;
6777 assert . equal ( 'Hot + Spicy + Fruity' , utf7 . decode ( 'Hot+ACAAKwAg-Spicy+ACAAKwAg-Fruity' ) ) ;
78+ assert . equal ( 'Hot + Spicy + Fruity' , utf7 . decode ( '+AEgAbwB0ACAAKwAgAFMAcABpAGMAeQAgACsAIABGAHIAdQBpAHQAeQ-' ) ) ;
79+ assert . equal ( 'Hot + Spicy + Fruity' , utf7 . decode ( '+AEgAbwB0ACAAKwAgAFMAcABpAGMAeQAgACsAIABGAHIAdQBpAHQAeQ' ) ) ;
80+
6881
6982 // Slashes in the beginning.
7083 assert . equal ( '\uffff\uedca\u9876\u5432\u1fed' , utf7 . decode ( '+///typh2VDIf7Q-' ) ) ;
@@ -75,4 +88,8 @@ test('test conversion from utf7 to utf8', function(assert) {
7588 assert . equal ( '\u00E4+\u00E4+\u00E4' , utf7 . decode ( '+AOQ++AOQ+-+AOQ' ) ) ;
7689 assert . equal ( '\u00E4+\u00E4+\u00E4' , utf7 . decode ( '+AOQAKwDkACsA5A-' ) ) ;
7790 assert . equal ( '\u00E4+\u00E4+\u00E4' , utf7 . decode ( '+AOQAKwDkACsA5A' ) ) ;
91+
92+ // Some special characters (e.g. plus sign)
93+ assert . equal ( '!"§$%&/()=?*+#-_.:,;<>|[]\\´`@' , utf7 . decode ( '+ACEAIgCnACQAJQAmAC8AKAApAD0APwAqACsAIwAtAF8ALgA6ACwAOwA8AD4AfABbAF0AXAC0AGAAQA-' ) ) ;
94+ assert . equal ( '!"§$%&/()=?*+#-_.:,;<>|[]\\´`@' , utf7 . decode ( '+ACEAIgCnACQAJQAmAC8AKAApAD0APwAqACsAIwAtAF8ALgA6ACwAOwA8AD4AfABbAF0AXAC0AGAAQA' ) ) ;
7895} ) ;
0 commit comments