gmail-api-ruby 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,18 @@
1
+ # -*- coding: utf-8 -*-
2
+ require File.expand_path('../../test_helper', __FILE__)
3
+
4
+ module Gmail
5
+ class UtilTest < Test::Unit::TestCase
6
+
7
+ should "Symbolize Name should work properly" do
8
+ assert_equal(({test1: "test"}), Gmail::Util.symbolize_names({"test1": "test"}))
9
+ m =Gmail::Message.new test_message
10
+ assert_equal m, Gmail::Util.symbolize_names(m)
11
+ assert_equal(({test: {nested:[{coucou: "1", coucou2: "2"}]}}), Gmail::Util.symbolize_names({"test": {"nested":[{"coucou": "1", "coucou2": "2"}]}}))
12
+ assert_equal [{coucou: "1", coucou2: "2"}], Gmail::Util.symbolize_names([{"coucou": "1", "coucou2": "2"}])
13
+ end
14
+
15
+ #testing of convert_to_gmail_object is not necessary as it is tested through all other test files
16
+
17
+ end
18
+ end
data/test/test_data.rb ADDED
@@ -0,0 +1,175 @@
1
+ module Gmail
2
+ module TestData
3
+ def test_response(body, code=200)
4
+ # When an exception is raised, restclient clobbers method_missing. Hence we
5
+ # can't just use the stubs interface.
6
+ body = JSON.generate(body) if !(body.kind_of? String)
7
+ m = mock
8
+ m.instance_variable_set('@gmail_values', { :body => body, :code => code })
9
+ def m.body; @gmail_values[:body]; end
10
+ def m.code; @gmail_values[:code]; end
11
+ m
12
+ end
13
+
14
+ def test_draft(params={})
15
+ {
16
+ "id": "1490204870554280932",
17
+ "message": {
18
+ "id": "14ae456f2ff1e3e4",
19
+ "threadId": "14ae456f2ff1e3e4",
20
+ "labelIds": [
21
+ "DRAFT"
22
+ ],
23
+ "snippet": "sd Cordialement, Julie",
24
+ "historyId": "227960",
25
+ "payload": {
26
+ "mimeType": "multipart/alternative",
27
+ "filename": "",
28
+ "headers": [
29
+ {
30
+ "name": "MIME-Version",
31
+ "value": "1.0"
32
+ },
33
+ {
34
+ "name": "Received",
35
+ "value": "by 10.64.21.4 with HTTP; Tue, 13 Jan 2015 09:28:31 -0800 (PST)"
36
+ },
37
+ {
38
+ "name": "Date",
39
+ "value": "Tue, 13 Jan 2015 18:28:31 +0100"
40
+ },
41
+ {
42
+ "name": "Message-ID",
43
+ "value": "<CAFXNVWSNjE652y4nau3nbWeoJ7RD_UsybHWa9-L6vvRi9j3nFQ@mail.gmail.com>"
44
+ },
45
+ {
46
+ "name": "Subject",
47
+ "value": ""
48
+ },
49
+ {
50
+ "name": "From",
51
+ "value": "Julie Desk <julie@juliedesk.com>"
52
+ },
53
+ {
54
+ "name": "Content-Type",
55
+ "value": "multipart/alternative; boundary=f46d042abf34a36bd9050c8bf335"
56
+ }
57
+ ],
58
+ "body": {
59
+ "size": 0
60
+ },
61
+ "parts": [
62
+ {
63
+ "partId": "0",
64
+ "mimeType": "text/plain",
65
+ "filename": "",
66
+ "headers": [
67
+ {
68
+ "name": "Content-Type",
69
+ "value": "text/plain; charset=UTF-8"
70
+ }
71
+ ],
72
+ "body": {
73
+ "size": 28,
74
+ "data": "c2QNCkNvcmRpYWxlbWVudCwNCg0KSnVsaWUNCg=="
75
+ }
76
+ },
77
+ {
78
+ "partId": "1",
79
+ "mimeType": "text/html",
80
+ "filename": "",
81
+ "headers": [
82
+ {
83
+ "name": "Content-Type",
84
+ "value": "text/html; charset=UTF-8"
85
+ }
86
+ ],
87
+ "body": {
88
+ "size": 154,
89
+ "data": "PGRpdiBkaXI9Imx0ciI-c2Q8YnIgY2xlYXI9ImFsbCI-PGRpdj48ZGl2IGNsYXNzPSJnbWFpbF9zaWduYXR1cmUiPjxkaXYgZGlyPSJsdHIiPkNvcmRpYWxlbWVudCw8ZGl2Pjxicj48L2Rpdj48ZGl2Pkp1bGllPC9kaXY-PC9kaXY-PC9kaXY-PC9kaXY-DQo8L2Rpdj4NCg=="
90
+ }
91
+ }
92
+ ]
93
+ },
94
+ "sizeEstimate": 710
95
+ }
96
+ }.merge(params)
97
+
98
+ end
99
+
100
+
101
+ def test_strange_message #it has payload.parts.parts
102
+ {:id=>"14ae95209c15af0a", :threadId=>"14ae94601bae5138", :labelIds=>["IMPORTANT", "CATEGORY_PERSONAL"], :snippet=>"Bonjour Julie, Le plus tôt sera le mieux, j&#39;ai hâte ! Je bloque le 12/02 Merci De : Julie Desk [", :historyId=>"231473", :payload=>{:mimeType=>"multipart/related", :filename=>"", :headers=>[{:name=>"Delivered-To", :value=>"julie@juliedesk.com"}, {:name=>"Received", :value=>"by 10.64.89.39 with SMTP id bl7csp1683249ieb; Wed, 14 Jan 2015 08:41:16 -0800 (PST)"}, {:name=>"X-Received", :value=>"by 10.194.76.205 with SMTP id m13mr8833652wjw.39.1421253675567; Wed, 14 Jan 2015 08:41:15 -0800 (PST)"}, {:name=>"Return-Path", :value=>"<sandra.perez@esnumerique.com>"}, {:name=>"Received", :value=>"from emea01-am1-obe.outbound.protection.outlook.com (mail-am1on0770.outbound.protection.outlook.com. [2a01:111:f400:fe00::770]) by mx.google.com with ESMTPS id v10si5545148wix.4.2015.01.14.08.41.14 for <julie@juliedesk.com> (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 14 Jan 2015 08:41:15 -0800 (PST)"}, {:name=>"Received-SPF", :value=>"pass (google.com: domain of sandra.perez@esnumerique.com designates 2a01:111:f400:fe00::770 as permitted sender) client-ip=2a01:111:f400:fe00::770;"}, {:name=>"Authentication-Results", :value=>"mx.google.com; spf=pass (google.com: domain of sandra.perez@esnumerique.com designates 2a01:111:f400:fe00::770 as permitted sender) smtp.mail=sandra.perez@esnumerique.com"}, {:name=>"Received", :value=>"from AMSPR06MB102.eurprd06.prod.outlook.com (10.242.90.147) by DB3PR06MB0937.eurprd06.prod.outlook.com (25.161.60.149) with Microsoft SMTP Server (TLS) id 15.1.53.17; Wed, 14 Jan 2015 16:41:13 +0000"}, {:name=>"Received", :value=>"from AMSPR06MB102.eurprd06.prod.outlook.com ([169.254.6.131]) by AMSPR06MB102.eurprd06.prod.outlook.com ([169.254.6.131]) with mapi id 15.01.0053.000; Wed, 14 Jan 2015 16:41:13 +0000"}, {:name=>"From", :value=>"Sandra Perez <sandra.perez@esnumerique.com>"}, {:name=>"To", :value=>"Julie Desk <julie@juliedesk.com>, Vincent Klingbeil <vincentklingbeil@ametix.com>"}, {:name=>"Subject", :value=>"RE: Dej"}, {:name=>"Thread-Topic", :value=>"Dej"}, {:name=>"Thread-Index", :value=>"AdAwFmdsGWjLpOTkSh6OGW1svRYHwwAAi/qAAAAdX/A="}, {:name=>"Date", :value=>"Wed, 14 Jan 2015 16:41:13 +0000"}, {:name=>"Message-ID", :value=>"<AMSPR06MB102CF5CA6B835FEA9E50E6D97410@AMSPR06MB102.eurprd06.prod.outlook.com>"}, {:name=>"References", :value=>"<AM2PR06MB09326077C9CED23112FE633DB1410@AM2PR06MB0932.eurprd06.prod.outlook.com> <CAFXNVWR_+YjgM2fMa+kcAOcUx2kiULpzXdQazrnqadDux3+prg@mail.gmail.com>"}, {:name=>"In-Reply-To", :value=>"<CAFXNVWR_+YjgM2fMa+kcAOcUx2kiULpzXdQazrnqadDux3+prg@mail.gmail.com>"}, {:name=>"Accept-Language", :value=>"fr-FR, en-US"}, {:name=>"Content-Language", :value=>"fr-FR"}, {:name=>"X-MS-Has-Attach", :value=>"yes"}, {:name=>"X-MS-TNEF-Correlator", :value=>""}, {:name=>"x-originating-ip", :value=>"[88.162.203.104]"}, {:name=>"authentication-results", :value=>"spf=none (sender IP is ) smtp.mailfrom=sandra.perez@esnumerique.com;"}, {:name=>"x-dmarcaction-test", :value=>"None"}, {:name=>"x-microsoft-antispam", :value=>"BCL:0;PCL:0;RULEID:(3005003);SRVR:DB3PR06MB0937;"}, {:name=>"x-exchange-antispam-report-test", :value=>"UriScan:;"}, {:name=>"x-exchange-antispam-report-cfa-test", :value=>"BCL:0;PCL:0;RULEID:;SRVR:DB3PR06MB0937;"}, {:name=>"x-forefront-prvs", :value=>"04569283F9"}, {:name=>"x-forefront-antispam-report", :value=>"SFV:NSPM;SFS:(10019020)(199003)(377424004)(189002)(68736005)(54356999)(76176999)(18206015028)(40100003)(99936001)(54606007)(102836002)(15975445007)(106356001)(50986999)(77156002)(62966003)(19625215002)(16236675004)(92566002)(33656002)(2950100001)(2900100001)(105586002)(221733001)(97736003)(46102003)(2656002)(87936001)(16601075003)(19300405004)(17760045003)(54206007)(66066001)(76576001)(19580395003)(101416001)(86362001)(74316001)(19580405001)(122556002)(19617315012)(64706001)(107886001)(19627595001);DIR:OUT;SFP:1102;SCL:1;SRVR:DB3PR06MB0937;H:AMSPR06MB102.eurprd06.prod.outlook.com;FPR:;SPF:None;MLV:sfv;PTR:InfoNoRecords;A:1;MX:1;LANG:fr;"}, {:name=>"received-spf", :value=>"None (protection.outlook.com: esnumerique.com does not designate permitted sender hosts)"}, {:name=>"Content-Type", :value=>"multipart/related; boundary=\"_005_AMSPR06MB102CF5CA6B835FEA9E50E6D97410AMSPR06MB102eurprd_\"; type=\"multipart/alternative\""}, {:name=>"MIME-Version", :value=>"1.0"}, {:name=>"X-OriginatorOrg", :value=>"esnumerique.com"}, {:name=>"X-MS-Exchange-CrossTenant-originalarrivaltime", :value=>"14 Jan 2015 16:41:13.6540 (UTC)"}, {:name=>"X-MS-Exchange-CrossTenant-fromentityheader", :value=>"Hosted"}, {:name=>"X-MS-Exchange-CrossTenant-id", :value=>"8d916988-dc6a-4604-9152-c47698104d7b"}, {:name=>"X-MS-Exchange-Transport-CrossTenantHeadersStamped", :value=>"DB3PR06MB0937"}], :body=>{:size=>0}, :parts=>[{:mimeType=>"multipart/alternative", :filename=>"", :headers=>[{:name=>"Content-Type", :value=>"multipart/alternative; boundary=\"_000_AMSPR06MB102CF5CA6B835FEA9E50E6D97410AMSPR06MB102eurprd_\""}], :body=>{:size=>0}, :parts=>[{:partId=>"0.0", :mimeType=>"text/plain", :filename=>"", :headers=>[{:name=>"Content-Type", :value=>"text/plain; charset=\"utf-8\""}, {:name=>"Content-Transfer-Encoding", :value=>"base64"}], :body=>{:size=>1223, :data=>"Qm9uam91ciBKdWxpZSwNCg0KTGUgcGx1cyB0w7R0IHNlcmEgbGUgbWlldXgsIGrigJlhaSBow6J0ZSAhDQoNCkplIGJsb3F1ZSBsZSAxMi8wMg0KDQpNZXJjaQ0KDQpEZSA6IEp1bGllIERlc2sgW21haWx0bzpqdWxpZUBqdWxpZWRlc2suY29tXQ0KRW52b3nDqSA6IG1lcmNyZWRpIDE0IGphbnZpZXIgMjAxNSAxNzozOQ0Kw4AgOiBWaW5jZW50IEtsaW5nYmVpbA0KQ2MgOiBTYW5kcmEgUGVyZXoNCk9iamV0IDogUmU6IERlag0KDQpCb25qb3VyIFNhbmRyYSwNCg0KVmluY2VudCBlc3QgZGlzcG9uaWJsZSBwb3VyIGTDqWpldW5lciBhdmVjIHZvdXMgYXV4IGhvcmFpcmVzIHN1aXZhbnRzIDoNCg0KLSBKZXVkaSAxMiBGw6l2cmllciDDoCAxMjozMA0KLSBWZW5kcmVkaSAxMyBGw6l2cmllciDDoCAxMjozMA0KLSBMdW5kaSAxNiBGw6l2cmllciDDoCAxMjozMA0KLSBNZXJjcmVkaSAxOCBGw6l2cmllciDDoCAxMjozMA0KDQoNClF1ZWwgaG9yYWlyZSB2b3VzIGNvbnZpZW50IGxlIG1pZXV4ID8NCltodHRwczovL21haWxmb29nYWUuYXBwc3BvdC5jb20vdD9zZW5kZXI9YWFuVnNhV1ZBYW5Wc2FXVmtaWE5yTG1OdmJRJTNEJTNEJnR5cGU9emVyb2NvbnRlbnQmZ3VpZD02NDcxZGFjYS0wODYwLTQ3YWEtYTlkZS1iYjI5MzFlOTUxMWZd4ZCnDQoNCkNvcmRpYWxlbWVudCwNCg0KSnVsaWUNCg0KMjAxNS0wMS0xNCAxNzoyOCBHTVQrMDE6MDAgVmluY2VudCBLbGluZ2JlaWwgPHZpbmNlbnRrbGluZ2JlaWxAYW1ldGl4LmNvbTxtYWlsdG86dmluY2VudGtsaW5nYmVpbEBhbWV0aXguY29tPj46DQpIZWxsbyBTYW5kcmEsDQoNCkp1bGllIChlbiBjYykgdmEgdGUgcHJvcG9zZXIgZGVzIGRpc3BvcyBwb3VyIHVuIGRlai4NCg0KQSB0csOocyBiaWVudMO0dCwNCg0KDQoNCi0tLQ0KDQpWaW5jZW50IEtMSU5HQkVJTCAgW2NpZDppbWFnZTAwMy5qcGdAMDFDRjFEQjIuQkZCMTVEOTBdICBEaXJlY3RldXIgQXNzb2Npw6kNCjExLCBydWUgUm91Z2Vtb250IC0gNzUwMDkgUGFyaXMNClRlbCAgIDogMDEgODQgMTYgMTYgNTUNCk1vYiA6IDA2IDIyIDcyIDgzIDE3DQpFLW1haWwgOiB2aW5jZW50LmtsaW5nYmVpbEBhbWV0aXguY29tPG1haWx0bzp2aW5jZW50LmtsaW5nYmVpbEBhbWV0aXguY29tPg0KU2l0ZSA6IGh0dHA6Ly93d3cuYW1ldGl4LmNvbTxodHRwOi8vd3d3LmFtZXRpeC5jb20vPg0KDQpbY2lkOmltYWdlMDA0LnBuZ0AwMUNGMURCMi5CRkIxNUQ5MF0NCg0KDQo="}}, {:partId=>"0.1", :mimeType=>"text/html", :filename=>"", :headers=>[{:name=>"Content-Type", :value=>"text/html; charset=\"utf-8\""}, {:name=>"Content-Transfer-Encoding", :value=>"base64"}], :body=>{:size=>8246, :data=>"PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MCI-DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRvciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPCEtLVtpZiAhbXNvXT48c3R5bGU-dlw6KiB7YmVoYXZpb3I6dXJsKCNkZWZhdWx0I1ZNTCk7fQ0Kb1w6KiB7YmVoYXZpb3I6dXJsKCNkZWZhdWx0I1ZNTCk7fQ0Kd1w6KiB7YmVoYXZpb3I6dXJsKCNkZWZhdWx0I1ZNTCk7fQ0KLnNoYXBlIHtiZWhhdmlvcjp1cmwoI2RlZmF1bHQjVk1MKTt9DQo8L3N0eWxlPjwhW2VuZGlmXS0tPjxzdHlsZT48IS0tDQovKiBGb250IERlZmluaXRpb25zICovDQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OiJDYW1icmlhIE1hdGgiOw0KCXBhbm9zZS0xOjIgNCA1IDMgNSA0IDYgMyAyIDQ7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseTpDYWxpYnJpOw0KCXBhbm9zZS0xOjIgMTUgNSAyIDIgMiA0IDMgMiA0O30NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6R2FkdWdpOw0KCXBhbm9zZS0xOjIgMTEgNSAyIDQgMiA0IDIgMiAzO30NCi8qIFN0eWxlIERlZmluaXRpb25zICovDQpwLk1zb05vcm1hbCwgbGkuTXNvTm9ybWFsLCBkaXYuTXNvTm9ybWFsDQoJe21hcmdpbjowY207DQoJbWFyZ2luLWJvdHRvbTouMDAwMXB0Ow0KCWZvbnQtc2l6ZToxMi4wcHQ7DQoJZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiIsc2VyaWY7fQ0KYTpsaW5rLCBzcGFuLk1zb0h5cGVybGluaw0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6Ymx1ZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30NCmE6dmlzaXRlZCwgc3Bhbi5Nc29IeXBlcmxpbmtGb2xsb3dlZA0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6cHVycGxlOw0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0Kc3Bhbi5FbWFpbFN0eWxlMTcNCgl7bXNvLXN0eWxlLXR5cGU6cGVyc29uYWwtcmVwbHk7DQoJZm9udC1mYW1pbHk6IkNhbGlicmkiLHNhbnMtc2VyaWY7DQoJY29sb3I6IzFGNDk3RDt9DQouTXNvQ2hwRGVmYXVsdA0KCXttc28tc3R5bGUtdHlwZTpleHBvcnQtb25seTsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsNCgltc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUzt9DQpAcGFnZSBXb3JkU2VjdGlvbjENCgl7c2l6ZTo2MTIuMHB0IDc5Mi4wcHQ7DQoJbWFyZ2luOjcwLjg1cHQgNzAuODVwdCA3MC44NXB0IDcwLjg1cHQ7fQ0KZGl2LldvcmRTZWN0aW9uMQ0KCXtwYWdlOldvcmRTZWN0aW9uMTt9DQotLT48L3N0eWxlPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPg0KPG86c2hhcGVkZWZhdWx0cyB2OmV4dD0iZWRpdCIgc3BpZG1heD0iMTAyNiIgLz4NCjwveG1sPjwhW2VuZGlmXS0tPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPg0KPG86c2hhcGVsYXlvdXQgdjpleHQ9ImVkaXQiPg0KPG86aWRtYXAgdjpleHQ9ImVkaXQiIGRhdGE9IjEiIC8-DQo8L286c2hhcGVsYXlvdXQ-PC94bWw-PCFbZW5kaWZdLS0-DQo8L2hlYWQ-DQo8Ym9keSBsYW5nPSJGUiIgbGluaz0iYmx1ZSIgdmxpbms9InB1cnBsZSI-DQo8ZGl2IGNsYXNzPSJXb3JkU2VjdGlvbjEiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI-PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPkJvbmpvdXIgSnVsaWUsDQo8bzpwPjwvbzpwPjwvc3Bhbj48L3A-DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI-PG86cD4mbmJzcDs8L286cD48L3NwYW4-PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI-PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPkxlIHBsdXMgdMO0dCBzZXJhIGxlIG1pZXV4LCBq4oCZYWkgaMOidGUmbmJzcDshDQo8bzpwPjwvbzpwPjwvc3Bhbj48L3A-DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI-PG86cD4mbmJzcDs8L286cD48L3NwYW4-PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI-PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPkplIGJsb3F1ZSBsZSAxMi8wMjxvOnA-PC9vOnA-PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A-DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI-TWVyY2k8bzpwPjwvbzpwPjwvc3Bhbj48L3A-DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI-PG86cD4mbmJzcDs8L286cD48L3NwYW4-PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI-PGI-PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj5EZSZuYnNwOzo8L3NwYW4-PC9iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI-IEp1bGllIERlc2sgW21haWx0bzpqdWxpZUBqdWxpZWRlc2suY29tXQ0KPGJyPg0KPGI-RW52b3nDqSZuYnNwOzo8L2I-IG1lcmNyZWRpIDE0IGphbnZpZXIgMjAxNSAxNzozOTxicj4NCjxiPsOAJm5ic3A7OjwvYj4gVmluY2VudCBLbGluZ2JlaWw8YnI-DQo8Yj5DYyZuYnNwOzo8L2I-IFNhbmRyYSBQZXJlejxicj4NCjxiPk9iamV0Jm5ic3A7OjwvYj4gUmU6IERlajxvOnA-PC9vOnA-PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA-Jm5ic3A7PC9vOnA-PC9wPg0KPGRpdj4NCjxkaXY-DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5Cb25qb3VyIFNhbmRyYSw8YnI-DQo8YnI-DQpWaW5jZW50IGVzdCBkaXNwb25pYmxlIHBvdXIgZMOpamV1bmVyIGF2ZWMgdm91cyBhdXggaG9yYWlyZXMgc3VpdmFudHMgOjxicj4NCjxicj4NCi0gSmV1ZGkgMTIgRsOpdnJpZXIgw6AgMTI6MzA8YnI-DQotIFZlbmRyZWRpIDEzIEbDqXZyaWVyIMOgIDEyOjMwPGJyPg0KLSBMdW5kaSAxNiBGw6l2cmllciDDoCAxMjozMDxicj4NCi0gTWVyY3JlZGkgMTggRsOpdnJpZXIgw6AgMTI6MzA8YnI-DQo8YnI-DQo8YnI-DQpRdWVsIGhvcmFpcmUgdm91cyBjb252aWVudCBsZSBtaWV1eCA_PG86cD48L286cD48L3A-DQo8L2Rpdj4NCjxkaXY-DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48aW1nIGlkPSJfeDAwMDBfaTEwMjUiIHNyYz0iaHR0cHM6Ly9tYWlsZm9vZ2FlLmFwcHNwb3QuY29tL3Q_c2VuZGVyPWFhblZzYVdWQWFuVnNhV1ZrWlhOckxtTnZiUSUzRCUzRCZhbXA7dHlwZT16ZXJvY29udGVudCZhbXA7Z3VpZD02NDcxZGFjYS0wODYwLTQ3YWEtYTlkZS1iYjI5MzFlOTUxMWYiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6Ny41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7R2FkdWdpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6d2hpdGUiPuGQpzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY-DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI-PGJyIGNsZWFyPSJhbGwiPg0KPG86cD48L286cD48L3A-DQo8ZGl2Pg0KPGRpdj4NCjxkaXY-DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5Db3JkaWFsZW1lbnQsPG86cD48L286cD48L3A-DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI-PG86cD4mbmJzcDs8L286cD48L3A-DQo8L2Rpdj4NCjxkaXY-DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5KdWxpZTxvOnA-PC9vOnA-PC9wPg0KPC9kaXY-DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY-DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxkaXY-DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4yMDE1LTAxLTE0IDE3OjI4IEdNVCYjNDM7MDE6MDAgVmluY2VudCBLbGluZ2JlaWwgJmx0OzxhIGhyZWY9Im1haWx0bzp2aW5jZW50a2xpbmdiZWlsQGFtZXRpeC5jb20iIHRhcmdldD0iX2JsYW5rIj52aW5jZW50a2xpbmdiZWlsQGFtZXRpeC5jb208L2E-Jmd0Ozo8bzpwPjwvbzpwPjwvcD4NCjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCAjQ0NDQ0NDIDEuMHB0O3BhZGRpbmc6MGNtIDBjbSAwY20gNi4wcHQ7bWFyZ2luLWxlZnQ6NC44cHQ7bWFyZ2luLXJpZ2h0OjBjbSI-DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI-SGVsbG8gU2FuZHJhLDxvOnA-PC9vOnA-PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI-SnVsaWUgKGVuIGNjKSB2YSB0ZSBwcm9wb3NlciBkZXMgZGlzcG9zIHBvdXIgdW4gZGVqLjxvOnA-PC9vOnA-PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48YnI-DQpBIHRyw6hzIGJpZW50w7R0LDxvOnA-PC9vOnA-PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI-Jm5ic3A7PG86cD48L286cD48L3A-DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPiZuYnNwOzxvOnA-PC9vOnA-PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvO2JhY2tncm91bmQ6d2hpdGUiPg0KPGI-PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Y29sb3I6IzVFNUU1RSI-LS0tPC9zcGFuPjwvYj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bztiYWNrZ3JvdW5kOndoaXRlIj4NCjxiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2NvbG9yOiM1RTVFNUUiPiZuYnNwOzwvc3Bhbj48L2I-PG86cD48L286cD48L3A-DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87YmFja2dyb3VuZDp3aGl0ZSI-DQo8Yj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtjb2xvcjojNUU1RTVFIj5WaW5jZW50IEtMSU5HQkVJTCAmbmJzcDs8aW1nIGJvcmRlcj0iMCIgd2lkdGg9IjE3IiBoZWlnaHQ9IjE3IiBpZD0iX3gwMDAwX2kxMDI2IiBzcmM9ImNpZDppbWFnZTAwMS5qcGdAMDFEMDMwMjAuQTgxRDNFQzAiIGFsdD0iY2lkOmltYWdlMDAzLmpwZ0AwMUNGMURCMi5CRkIxNUQ5MCI-IERpcmVjdGV1ciBBc3NvY2nDqTwvc3Bhbj48L2I-PG86cD48L286cD48L3A-DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87YmFja2dyb3VuZDp3aGl0ZSI-DQo8c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2NvbG9yOiM1RTVFNUUiPjExLCBydWUgUm91Z2Vtb250IC0gNzUwMDkgUGFyaXM8L3NwYW4-PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Y29sb3I6YmxhY2siPjxicj4NCjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2NvbG9yOiM1RTVFNUUiPlRlbCZuYnNwOyAmbmJzcDs6IDAxIDg0IDE2IDE2IDU1PC9zcGFuPjxvOnA-PC9vOnA-PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvO2JhY2tncm91bmQ6d2hpdGUiPg0KPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtjb2xvcjojNUU1RTVFIj5Nb2IgOiAwNiAyMiA3MiA4MyAxNzxicj4NCkUtbWFpbCA6IDwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2NvbG9yOiM1QjlCRDUiPjxhIGhyZWY9Im1haWx0bzp2aW5jZW50LmtsaW5nYmVpbEBhbWV0aXguY29tIiB0YXJnZXQ9Il9ibGFuayI-PHNwYW4gc3R5bGU9ImNvbG9yOiM1QjlCRDUiPnZpbmNlbnQua2xpbmdiZWlsQGFtZXRpeC5jb208L3NwYW4-PC9hPg0KPC9zcGFuPjxvOnA-PC9vOnA-PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvO2JhY2tncm91bmQ6d2hpdGUiPg0KPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtjb2xvcjojNUU1RTVFIj5TaXRlIDogPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OS4wcHQ7Y29sb3I6IzVCOUJENSI-PGEgaHJlZj0iaHR0cDovL3d3dy5hbWV0aXguY29tLyIgdGFyZ2V0PSJfYmxhbmsiPjxzcGFuIHN0eWxlPSJjb2xvcjojNUI5QkQ1Ij5odHRwOi8vd3d3LmFtZXRpeC5jb208L3NwYW4-PC9hPg0KPC9zcGFuPjxvOnA-PC9vOnA-PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI-PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC41cHQ7Y29sb3I6YmxhY2siPjxpbWcgYm9yZGVyPSIwIiB3aWR0aD0iMjM2IiBoZWlnaHQ9IjEwNCIgaWQ9Il94MDAwMF9pMTAyNyIgc3JjPSJjaWQ6aW1hZ2UwMDIucG5nQDAxRDAzMDIwLkE4MUQzRUMwIiBhbHQ9ImNpZDppbWFnZTAwNC5wbmdAMDFDRjFEQjIuQkZCMTVEOTAiPjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI-Jm5ic3A7PG86cD48L286cD48L3A-DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPC9kaXY-DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY-DQo8L2JvZHk-DQo8L2h0bWw-DQo="}}]}, {:partId=>"1", :mimeType=>"image/jpeg", :filename=>"image001.jpg", :headers=>[{:name=>"Content-Type", :value=>"image/jpeg; name=\"image001.jpg\""}, {:name=>"Content-Description", :value=>"image001.jpg"}, {:name=>"Content-Disposition", :value=>"inline; filename=\"image001.jpg\"; size=745; creation-date=\"Wed, 14 Jan 2015 16:41:12 GMT\"; modification-date=\"Wed, 14 Jan 2015 16:41:12 GMT\""}, {:name=>"Content-ID", :value=>"<image001.jpg@01D03020.A81D3EC0>"}, {:name=>"Content-Transfer-Encoding", :value=>"base64"}], :body=>{:attachmentId=>"ANGjdJ9EUce9luxTns6YCguM66uWOxWwYQvDeG0x_b--7WtuX286rMcFGJCzxreUbo81SqPcPmi_SH4Pwj5n6OhAGDh1U2vogEB2JE13baFrUObxecXTeaaO6jeq78j7dv6ZtY0ivtRdQQKFDddIctZ2xDYJ7YuMNm1LDpuWGR5f_yNIDL-9t5EQY8FWEGhcXAZOS_JSxqc5v469Mxt9bRK6-r-8I7p6C9kEtxm6s1DMpEMaV0veKGU7Fcu7kpO7_6xoCc16fMGDWnlX5tmRv1KGopc9E5WQoq453aFAig", :size=>1024}}, {:partId=>"2", :mimeType=>"image/png", :filename=>"image002.png", :headers=>[{:name=>"Content-Type", :value=>"image/png; name=\"image002.png\""}, {:name=>"Content-Description", :value=>"image002.png"}, {:name=>"Content-Disposition", :value=>"inline; filename=\"image002.png\"; size=18240; creation-date=\"Wed, 14 Jan 2015 16:41:13 GMT\"; modification-date=\"Wed, 14 Jan 2015 16:41:13 GMT\""}, {:name=>"Content-ID", :value=>"<image002.png@01D03020.A81D3EC0>"}, {:name=>"Content-Transfer-Encoding", :value=>"base64"}], :body=>{:attachmentId=>"ANGjdJ9ZpRLg9NX7RpBGCcmbfrARNV5R3BJLY2O5jKfpgfpe1rntEYXw0Vr0bIYMMU9DJ3jc-ofm2NNsKeu5wkjB3IglrGe19BHrgjWh9Mz_65H-Lp3x_avlwVg4Tm1lmyWF6POmK5BN64vlwQGcSJbaytrRI6PuRVeLLBWI32xfllZi-N_Pf9JNPgNouf_jVP8XFzl9pPD6gIaUugsMNdUXPEyx0pY00JOhgkP1P0Wcz6EU931R9Au19mYdO87ROzdBAea7ekqA3xHT5E7XpnC5O9XyJAray1D9iPWVcQ", :size=>24960}}]}, :sizeEstimate=>44153}
103
+ end
104
+
105
+ def test_draft_list(params={})
106
+ {:drafts=>[{:id=>"1490204870554280932", :message=>{:id=>"14ae456f2ff1e3e4", :threadId=>"14ae456f2ff1e3e4"}}, {:id=>"1490204870554280939", :message=>{:id=>"14ae456f2ff1e3e5", :threadId=>"14ae456f2ff1e3e5"}}], :resultSizeEstimate=>2}.merge(params)
107
+ end
108
+
109
+ def test_label params={}
110
+ {
111
+ :id=>"CATEGORY_UPDATES",
112
+ :name=>"CATEGORY_UPDATES",
113
+ :messageListVisibility=>"hide",
114
+ :labelListVisibility=>"labelHide",
115
+ :type=>"system",
116
+ :messagesTotal=>129,
117
+ :messagesUnread=>33,
118
+ :threadsTotal=>105,
119
+ :threadsUnread=>21
120
+ }.merge(params)
121
+ end
122
+
123
+ def test_label_list(params={})
124
+ {:labels=>[{:id=>"CATEGORY_UPDATES", :name=>"CATEGORY_UPDATES", :messageListVisibility=>"hide", :labelListVisibility=>"labelHide", :type=>"system"}, {:id=>"UNREAD", :name=>"UNREAD", :type=>"system"}, {:id=>"DRAFT", :name=>"DRAFT", :messageListVisibility=>"hide", :labelListVisibility=>"labelShow", :type=>"system"}, {:id=>"INBOX", :name=>"INBOX", :messageListVisibility=>"hide", :labelListVisibility=>"labelShow", :type=>"system"}, {:id=>"CATEGORY_PROMOTIONS", :name=>"CATEGORY_PROMOTIONS", :messageListVisibility=>"hide", :labelListVisibility=>"labelHide", :type=>"system"}, {:id=>"CATEGORY_SOCIAL", :name=>"CATEGORY_SOCIAL", :messageListVisibility=>"hide", :labelListVisibility=>"labelHide", :type=>"system"}, {:id=>"CATEGORY_PERSONAL", :name=>"CATEGORY_PERSONAL", :messageListVisibility=>"hide", :labelListVisibility=>"labelHide", :type=>"system"}, {:id=>"CATEGORY_FORUMS", :name=>"CATEGORY_FORUMS", :messageListVisibility=>"hide", :labelListVisibility=>"labelHide", :type=>"system"}, {:id=>"TRASH", :name=>"TRASH", :messageListVisibility=>"hide", :labelListVisibility=>"labelHide", :type=>"system"}, {:id=>"IMPORTANT", :name=>"IMPORTANT", :messageListVisibility=>"hide", :labelListVisibility=>"labelHide", :type=>"system"}, {:id=>"SENT", :name=>"SENT", :messageListVisibility=>"hide", :labelListVisibility=>"labelShow", :type=>"system"}, {:id=>"STARRED", :name=>"STARRED", :messageListVisibility=>"hide", :labelListVisibility=>"labelShow", :type=>"system"}, {:id=>"SPAM", :name=>"SPAM", :messageListVisibility=>"hide", :labelListVisibility=>"labelHide", :type=>"system"}]}.merge(params)
125
+ end
126
+
127
+ def test_thread(params = {})
128
+ {:id=>"14ae456f2ff1e3e4", :historyId=>"227960", :messages=>[
129
+ {:id=>"14ae456f2ff1e3e4", :threadId=>"14ae456f2ff1e3e4", :labelIds=>["DRAFT"], :snippet=>"sd Cordialement, Julie", :historyId=>"227960", :payload=>{:mimeType=>"multipart/alternative", :filename=>"", :headers=>[{:name=>"MIME-Version", :value=>"1.0"}, {:name=>"Received", :value=>"by 10.64.21.4 with HTTP; Tue, 13 Jan 2015 09:28:31 -0800 (PST)"}, {:name=>"Date", :value=>"Tue, 13 Jan 2015 18:28:31 +0100"}, {:name=>"Message-ID", :value=>"<CAFXNVWSNjE652y4nau3nbWeoJ7RD_UsybHWa9-L6vvRi9j3nFQ@mail.gmail.com>"}, {:name=>"Subject", :value=>""}, {:name=>"From", :value=>"Julie Desk <julie@juliedesk.com>"}, {:name=>"Content-Type", :value=>"multipart/alternative; boundary=f46d042abf34a36bd9050c8bf335"}], :body=>{:size=>0}, :parts=>[{:partId=>"0", :mimeType=>"text/plain", :filename=>"", :headers=>[{:name=>"Content-Type", :value=>"text/plain; charset=UTF-8"}], :body=>{:size=>28, :data=>"c2QNCkNvcmRpYWxlbWVudCwNCg0KSnVsaWUNCg=="}}, {:partId=>"1", :mimeType=>"text/html", :filename=>"", :headers=>[{:name=>"Content-Type", :value=>"text/html; charset=UTF-8"}], :body=>{:size=>154, :data=>"PGRpdiBkaXI9Imx0ciI-c2Q8YnIgY2xlYXI9ImFsbCI-PGRpdj48ZGl2IGNsYXNzPSJnbWFpbF9zaWduYXR1cmUiPjxkaXYgZGlyPSJsdHIiPkNvcmRpYWxlbWVudCw8ZGl2Pjxicj48L2Rpdj48ZGl2Pkp1bGllPC9kaXY-PC9kaXY-PC9kaXY-PC9kaXY-DQo8L2Rpdj4NCg=="}}]}, :sizeEstimate=>710},
130
+ {:id=>"14ae456f2ff1e3e4", :threadId=>"14ae456f2ff1e3e4", :labelIds=>["SENT"], :snippet=>"sd Cordialement, Julie", :historyId=>"227960", :payload=>{:mimeType=>"multipart/alternative", :filename=>"", :headers=>[{:name=>"MIME-Version", :value=>"1.0"}, {:name=>"Received", :value=>"by 10.64.21.4 with HTTP; Tue, 13 Jan 2015 09:28:31 -0800 (PST)"}, {:name=>"Date", :value=>"Tue, 13 Jan 2015 18:28:31 +0100"}, {:name=>"Message-ID", :value=>"<CAFXNVWSNjE652y4nau3nbWeoJ7RD_UsybHWa9-L6vvRi9j3nFQ@mail.gmail.com>"}, {:name=>"Subject", :value=>""}, {:name=>"From", :value=>"Julie Desk <julie@juliedesk.com>"}, {:name=>"Content-Type", :value=>"multipart/alternative; boundary=f46d042abf34a36bd9050c8bf335"}], :body=>{:size=>0}, :parts=>[{:partId=>"0", :mimeType=>"text/plain", :filename=>"", :headers=>[{:name=>"Content-Type", :value=>"text/plain; charset=UTF-8"}], :body=>{:size=>28, :data=>"c2QNCkNvcmRpYWxlbWVudCwNCg0KSnVsaWUNCg=="}}, {:partId=>"1", :mimeType=>"text/html", :filename=>"", :headers=>[{:name=>"Content-Type", :value=>"text/html; charset=UTF-8"}], :body=>{:size=>154, :data=>"PGRpdiBkaXI9Imx0ciI-c2Q8YnIgY2xlYXI9ImFsbCI-PGRpdj48ZGl2IGNsYXNzPSJnbWFpbF9zaWduYXR1cmUiPjxkaXYgZGlyPSJsdHIiPkNvcmRpYWxlbWVudCw8ZGl2Pjxicj48L2Rpdj48ZGl2Pkp1bGllPC9kaXY-PC9kaXY-PC9kaXY-PC9kaXY-DQo8L2Rpdj4NCg=="}}]}, :sizeEstimate=>710},
131
+ {:id=>"14ae456f2ff1e3e4", :threadId=>"14ae456f2ff1e3e4", :labelIds=>["UNREAD"], :snippet=>"sd Cordialement, Julie", :historyId=>"227960", :payload=>{:mimeType=>"multipart/alternative", :filename=>"", :headers=>[{:name=>"MIME-Version", :value=>"1.0"}, {:name=>"Received", :value=>"by 10.64.21.4 with HTTP; Tue, 13 Jan 2015 09:28:31 -0800 (PST)"}, {:name=>"Date", :value=>"Tue, 13 Jan 2015 18:28:31 +0100"}, {:name=>"Message-ID", :value=>"<CAFXNVWSNjE652y4nau3nbWeoJ7RD_UsybHWa9-L6vvRi9j3nFQ@mail.gmail.com>"}, {:name=>"Subject", :value=>""}, {:name=>"From", :value=>"Julie Desk <julie@juliedesk.com>"}, {:name=>"Content-Type", :value=>"multipart/alternative; boundary=f46d042abf34a36bd9050c8bf335"}], :body=>{:size=>0}, :parts=>[{:partId=>"0", :mimeType=>"text/plain", :filename=>"", :headers=>[{:name=>"Content-Type", :value=>"text/plain; charset=UTF-8"}], :body=>{:size=>28, :data=>"c2QNCkNvcmRpYWxlbWVudCwNCg0KSnVsaWUNCg=="}}, {:partId=>"1", :mimeType=>"text/html", :filename=>"", :headers=>[{:name=>"Content-Type", :value=>"text/html; charset=UTF-8"}], :body=>{:size=>154, :data=>"PGRpdiBkaXI9Imx0ciI-c2Q8YnIgY2xlYXI9ImFsbCI-PGRpdj48ZGl2IGNsYXNzPSJnbWFpbF9zaWduYXR1cmUiPjxkaXYgZGlyPSJsdHIiPkNvcmRpYWxlbWVudCw8ZGl2Pjxicj48L2Rpdj48ZGl2Pkp1bGllPC9kaXY-PC9kaXY-PC9kaXY-PC9kaXY-DQo8L2Rpdj4NCg=="}}]}, :sizeEstimate=>710},
132
+
133
+ ]}.merge(params)
134
+ end
135
+
136
+ def test_thread_list
137
+ {:threads=>[{:id=>"14ae456f2ff1e3e4", :snippet=>"", :historyId=>"227960"}, {:id=>"14ae4438ed604170", :snippet=>"", :historyId=>"227955"}, {:id=>"14ac91101e18bed8", :snippet=>"", :historyId=>"227646"}, {:id=>"14ae3d759a2166d1", :snippet=>"", :historyId=>"227565"}, {:id=>"14acfd71d2f20308", :snippet=>"", :historyId=>"227430"}], :nextPageToken=>"11260038910369504656", :resultSizeEstimate=>25}
138
+ end
139
+
140
+ def test_message(params = {})
141
+ {:id=>"14ada61b92db5e63", :threadId=>"14ada58320652fc7", :labelIds=>["IMPORTANT", "CATEGORY_PERSONAL"], :snippet=>"Bonsoir David Merci pour votre retour. Je verrai demain avec Julie, quand fixer un RDV téléphonique.", :historyId=>"219674", :payload=>{:mimeType=>"multipart/alternative", :filename=>"", :headers=>[{:name=>"Delivered-To", :value=>"julie@juliedesk.com"}, {:name=>"Received", :value=>"by 10.64.89.39 with SMTP id bl7csp849585ieb; Sun, 11 Jan 2015 11:04:05 -0800 (PST)"}, {:name=>"X-Received", :value=>"by 10.180.75.237 with SMTP id f13mr23178958wiw.69.1421003044898; Sun, 11 Jan 2015 11:04:04 -0800 (PST)"}, {:name=>"Return-Path", :value=>"<arlenebentolila@gmail.com>"}, {:name=>"Received", :value=>"from mail-wg0-x232.google.com (mail-wg0-x232.google.com. [2a00:1450:400c:c00::232]) by mx.google.com with ESMTPS id o4si9737386wia.79.2015.01.11.11.04.04 for <julie@juliedesk.com> (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Sun, 11 Jan 2015 11:04:04 -0800 (PST)"}, {:name=>"Received-SPF", :value=>"pass (google.com: domain of arlenebentolila@gmail.com designates 2a00:1450:400c:c00::232 as permitted sender) client-ip=2a00:1450:400c:c00::232;"}, {:name=>"Authentication-Results", :value=>"mx.google.com; spf=pass (google.com: domain of arlenebentolila@gmail.com designates 2a00:1450:400c:c00::232 as permitted sender) smtp.mail=arlenebentolila@gmail.com; dkim=pass header.i=@gmail.com; dmarc=pass (p=NONE dis=NONE) header.from=gmail.com"}, {:name=>"Received", :value=>"by mail-wg0-f50.google.com with SMTP id a1so15938647wgh.9 for <julie@juliedesk.com>; Sun, 11 Jan 2015 11:04:04 -0800 (PST)"}, {:name=>"DKIM-Signature", :value=>"v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=content-type:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=mEmKhvWjFpq+DnO0xxdPjpd/i7MTfctQp+prGlYASc4=; b=ouf26RPtOvk9wATJjcDxdOET2WD58x6efOOd8sZXt9c09mCoAsocVHyihpWWacId9j qtuhKv/bTOe8AbMnk3JU4PHgnyJyCDL3gRjUrnlzMmwb92gd2c6TxS/p711fYvDfrz+L jyABwocRbJSBTH/YsGPh/sP/z89oE0Aox5QIvd7PE1ykUWIhk4GVhGx7qf/SEImA4oGB zb17MgSVHx7s9glVeibxturDZXJPSPS/sFX4VgHtMT4GlKvjtiLKJl3G+rIAbV+YsIet zmcrurpZM97/ztnL/8IrQG17Kqe+JqanNlVwvhEMfTLOxooC+5p1v1tdHvN+8RMAcYWv QyrQ=="}, {:name=>"X-Received", :value=>"by 10.194.175.102 with SMTP id bz6mr2702286wjc.120.1421003043927; Sun, 11 Jan 2015 11:04:03 -0800 (PST)"}, {:name=>"Return-Path", :value=>"<arlenebentolila@gmail.com>"}, {:name=>"Received", :value=>"from [192.168.0.39] (fes75-2-78-192-50-38.fbxo.proxad.net. [78.192.50.38]) by mx.google.com with ESMTPSA id i15sm18583199wjq.22.2015.01.11.11.04.02 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Sun, 11 Jan 2015 11:04:02 -0800 (PST)"}, {:name=>"Content-Type", :value=>"multipart/alternative; boundary=Apple-Mail-47C5C329-5673-4226-945A-D9F99028CBB5"}, {:name=>"Mime-Version", :value=>"1.0 (1.0)"}, {:name=>"Subject", :value=>"Re: Recommandation Sup de Luxe pour sujet de mémoire Arlène Bentolila"}, {:name=>"From", :value=>"\"Arlène Bentolila\" <arlenebentolila@gmail.com>"}, {:name=>"X-Mailer", :value=>"iPhone Mail (12B440)"}, {:name=>"In-Reply-To", :value=>"<CAFgv0K+4a9t+myY1o=pyeDS8FnaEbqff1=gLmC45eXP5nyR9ww@mail.gmail.com>"}, {:name=>"Date", :value=>"Sun, 11 Jan 2015 20:04:01 +0100"}, {:name=>"Cc", :value=>"Julie Desk <julie@juliedesk.com>"}, {:name=>"Bcc", :value=>"Julien <julien@juliedesk.com>"}, {:name=>"Content-Transfer-Encoding", :value=>"7bit"}, {:name=>"Message-Id", :value=>"<CF1519BA-7935-4F27-B41E-33CBF7637858@gmail.com>"}, {:name=>"References", :value=>"<CAHSJCBFtGzz7_BqoWqNgJUCsgoLZDyOj56-uT9pKB6+eoO6HGA@mail.gmail.com> <CAFgv0K+4a9t+myY1o=pyeDS8FnaEbqff1=gLmC45eXP5nyR9ww@mail.gmail.com>"}, {:name=>"To", :value=>"David Alexandre Klingbeil <dak@dymant.com>"}], :body=>{:size=>0}, :parts=>[{:partId=>"0", :mimeType=>"text/plain", :filename=>"", :headers=>[{:name=>"Content-Type", :value=>"text/plain; charset=utf-8"}, {:name=>"Content-Transfer-Encoding", :value=>"quoted-printable"}], :body=>{:size=>6912, :data=>"Qm9uc29pciBEYXZpZA0KDQpNZXJjaSBwb3VyIHZvdHJlIHJldG91ci4gSmUgdmVycmFpIGRlbWFpbiBhdmVjIEp1bGllLCBxdWFuZCBmaXhlciB1biBSRFYgdMOpbMOpcGhvbmlxdWUuIA0KDQpQb3VyIGluZm9ybWF0aW9uLCBqJ2FpIGFqdXN0w6kgbW9uIHN1amV0IGRlIG3DqW1vaXJlIHF1ZSBqZSB0cm91dmFpcyB0cm9wIGNsYXNzaXF1ZSBldCBjZSwgYXByw6hzIGF2b2lyIMOpY2hhbmfDqSBhdmVjIGRlcyBjb25zdWx0YW50cy4gIA0KSmUgdm91cyBsJ2V4cG9zZSBjaS1kZXNzb3VzLiBWb3MgY29uc2VpbHMgZXQgcmVtYXJxdWVzIG1lIHNlcm9udCB0cmVzIHV0aWxlcy4gIA0KDQpTdWpldCAoZW52b3nDqSDDoCBTdXAgZGUgTHV4ZSBhdmFudCBoaWVyLCBWZW5kcmVkaSk6IA0KDQpDb21tZW50IGxlcyBtYXJxdWVzIGRlIG1vZGUgZXQgZGUgam9haWxsZXJpZSBzJ3kgcHJlbm5lbnQgcG91ciBhcHByw6loZW5kZXIgbGVzIG9iamV0cyBjb25uZWN0w6lzIGRhbnMgbGV1ciBzdHJhdMOpZ2llIGQnb2ZmcmU_IA0KSmUgdmV1eCBkw6ltb250cmVyIHF1ZSBsZXMgb2JqZXRzIGNvbm5lY3TDqXMgc29udCB1biBsZXZpZXIgZGUgY3JvaXNzYW5jZSBldCBkZSBkaWZmw6lyZW5jaWF0aW9uLiBKZSB2ZXV4IGFuYWx5c2VyIGxlcyBjb21wb3J0ZW1lbnRzIGRlcyBtYXJxdWVzIGZhY2Ugw6AgY2V0IGVuamV1eDogdm9udCAtIGVsbGVzIHJlc3TDqWVzIGRhbnMgbGUgY2xhc3NpY2lzbWUgYXZlYyBkZXMgbWF0acOocmVzIG5vYmxlcyBwYXIgZXhlbXBsZSBvdSDDqXZvbHVlciBkZSBmYcOnb24gc2lnbmlmaWNhdGl2ZXMgYXZlYyBsZXMgb2JqZXRzIGNvbm5lY3TDqXM_IENvbW1lbnQgYXBwcsOpaGVuZGVudCAtIGVsbGVzIGNlIGNoYW5nZW1lbnQgZGlnaXRhbCBkYW5zIGxldXIgc3RyYXTDqWdpZSBk4oCZb2ZmcmUgZXQgZGUgZMOpdmVsb3BwZW1lbnQ_DQoNCkJpZW4gw6Agdm91cyANCkFybMOobmUNCg0KQXJsw6huZSBCZW50b2xpbGENCkVudm95w6kgZGUgbW9uIGlQaG9uZS4NCjA2IDYyIDE4IDQ3IDA4DQoNCg0KPiBMZSAxMSBqYW52LiAyMDE1IMOgIDE5OjUzLCBEYXZpZCBBbGV4YW5kcmUgS2xpbmdiZWlsIDxkYWtAZHltYW50LmNvbT4gYSDDqWNyaXQgOg0KPiANCj4gQm9uc29pciBBcmxlbmUsDQo-IA0KPiBQYXJsb25zLWVuIHBhciB0w6lsw6lwaG9uZSBjZXR0ZSBzZW1haW5lIG91IGxhIHN1aXZhbnRlDQo-IA0KPiBKdWxpZSAoZW4gY2MpIHZhIHZvdXMgY29udGFjdGVyIHBvdXIgdHJvdXZlciB1biBjcsOpbmVhdSBkZSAzMG1pbiBwb3VyIHVuIGNhbGwuDQo-IA0KPiBQYXNzZXogdW5lIGV4Y2VsbGVudGUgZmluIGRlIHdlZWstZW5kLA0KPiANCj4gQSBiaWVudMO0dCwNCj4gDQo-IERhdmlkDQo-IA0KPiBEYXZpZCBBbGV4YW5kcmUgS2xpbmdiZWlsDQo-IENFTyAmIENvLUZvdW5kZXIgfCBEeW1hbnQuY29tDQo-IC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4NCj4gTS4gZGFrQGR5bWFudC5jb20NCj4gVCAuICszMyA2IDYzIDk0IDc3IDQzDQo-IEBEYXZpZEtsaW5nYmVpbA0KPiAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uDQo-IA0KPiANCj4gTGUgNSBqYW52aWVyIDIwMTUgMTM6MTksIEFybGVuZSBCZW50b2xpbGEgPGFybGVuZWJlbnRvbGlsYUBnbWFpbC5jb20-IGEgw6ljcml0IDoNCj4-IENoZXIgTW9uc2lldXIsDQo-PiANCj4-IEonYWkgbGUgcGxhaXNpciBkZSB2b3VzIGNvbnRhY3RlciBzdXIgbGVzIGNvbnNlaWxzIGRlIE1hZGFtZSBsZSBHb3VndWVjLCBEaXJlY3RyaWNlIHDDqWRhZ29naXF1ZSDDoCBTdXAgZGUgTHV4ZSBkYW5zIGxlIGNhZHJlIGRlIGxhIHByw6lwYXJhdGlvbiBkZSBtb24gbcOpbW9pcmUuIENlbHVpIC0gY2kgZG9pdCDDqnRyZSB1biByYXBwb3J0IHByb2Zlc3Npb25uZWwgY29uY3JldCBldCBwZXJ0aW5lbnQgZXQgbm9uIHBhcyAiYWNhZMOpbWlxdWUuIEplIHZvdXMgcHJvcG9zZSBkJ2VuIGTDqWNvdXZyaXIgbGUgc3VqZXQgZW4gcGnDqGNlIGpvaW50ZSBldCBsYSByw6lwb25zZSBkZSBTdXAgZGUgTHV4ZSBlbiBiYXMgZGUgY2UgbWFpbC4gDQo-PiANCj4-IERhbnMgbGEgcGVyc3BlY3RpdmUgZGUgdm91cyByZW5jb250cmVyLCBqZSBtZSBwcm9wb3NlIGRlIHZvdXMgcsOpc3VtZXIgbW9uIHBhcmNvdXJzIGV0IG1vbiBvYmplY3RpZiBwcm9mZXNzaW9ubmVscyBlbiByYXBwb3J0IGF2ZWMgbW9uIG3DqW1vaXJlLiANCj4-IA0KPj4gUGFyY291cnMNCj4-IEonYWkgdW5lIGV4cMOpcmllbmNlIHByb2Zlc3Npb25uZWxsZSBkZSBwcsOocyBkZSAxNSBhbnMgZW4gdGFudCBxdWUgRGlyZWN0cmljZSBkZSBjbGllbnTDqGxlIHByZXNzZSDDqWNyaXRlIGF1IHNlaW4gZGUgZ3JhbmRzIGdyb3VwZXMgbcOpZGlhcyAoVMOpbMOpcmFtYSwgTGFnYXJkw6hyZSkuIEonYWkgc3DDqWNpYWxpc8OpIGNldHRlIGV4cMOpcmllbmNlIGNvbW1lcmNpYWxlIGRlcHVpcyA4IGFucyBzdXIgbGVzIHNlY3RldXJzIGR1IGx1eGUgZXQgZGUgbGEgbW9kZSBlbiB0cmF2YWlsbGFudCBzdXIgbGVzIHByb2pldHMgZGUgY29tbXVuaWNhdGlvbiBwdWJsaWNpdGFpcmUgZGVzIGFubm9uY2V1cnMgZMOpZGnDqXMgZXQgcG91ciBkZXMgbWFycXVlcyBkZSBwcmVzc2UgaGF1dCBkZSBnYW1tZSBldCBsdXhlIChFbGxlLCBOdW3DqXJvLjs7KS4gTW9uIENWIGVzdCBlbiBwacOoY2Ugam9pbnRlLg0KPj4gDQo-PiBQcm9qZXQgcHJvZmVzc2lvbm5lbA0KPj4gSmUgdmV1eCBhbGxleiBwbHVzIGxvaW4gZGFucyBtb24gZMOpdmVsb3BwZW1lbnQgZGUgbWFycXVlcyBkZSBsdXhlIHNvaXQgYXUgbml2ZWF1IGNvbW1lcmNpYWwgc29pdCBhdSBuaXZlYXUgZGUgbGEgY29tbXVuaWNhdGlvbiBldCBjJ2VzdCBwb3VycXVvaSBqJ2FpIGludMOpZ3LDqSBTdXAgZGUgTHV4ZS4gSmUgdmlzZSBwb3VyIHNlcHRlbWJyZSBhdSBwbHVzIHRhcmQsIHVuZSBhY3Rpdml0w6kgY29tbWVyY2lhbGUgYXUgc2VpbiBkJ3VuZSBtYXJxdWUgZGUgbHV4ZS9tb2RlIG91IGVuIGFnZW5jZSAoZMOpdmVsb3BwZW1lbnQgb3UgY29uc2VpbCkuIFBvdXIgeSBwYXJ2ZW5pciBldCBlbnJpY2hpciBtYSB2YWxldXIgc3VyIGxlIG1hcmNow6ksIGplIGRvaXMgY29uc29saWRlciBjZSBxdWkgcydpbXBvc2UsIGxlIGRpZ2l0YWwhDQo-PiANCj4-IE3DqW1vaXJlIC0gcmFwcG9ydCBTdXAgZGUgTHV4ZQ0KPj4gSidhaSBkb25jIG9wdMOpIHBvdXIgdW4gc3VqZXQgZGUgbcOpbW9pcmUgcXVpIHBvcnRlIHN1ciBsZSBsdXhlIGTDqWZpw6kgcGFyIGxlIGRpZ2l0YWwuIEplIHZldXggZMOpbW9udHJlciBxdWUgbGUgbHV4ZSBlc3QgcsOpdGljZW50IGZhY2UgYXUgZGlnaXRhbCwgcG91cnRhbnQgZMOpY2lzaWYgZGFucyBsJ2FwcG9ydCBkZSBub3V2ZWF1eCBzZXJ2aWNlcyBldCBkYW5zIGxlIGTDqXBsb2llbWVudCBkdSBsdXhlLiAgDQo-PiBNYWlzIG1vbiBzdWpldCBlc3QgdHJvcCBsYXJnZS4gSmUgbmUgcGV1eCB0cmFpdGVyIGRlIHRvdXMgbGVzIHNlcnZpY2VzIGFwcG9ydMOpcyBwYXIgbGUgZGlnaXRhbC4gSidow6lzaXRlIGVudHJlIGxhIGNvbW11bmljYXRpb24gZXQgbGEgc3RyYXTDqWdpZSBkJ29mZnJlIChwcm9kdWl0cykuIFF1ZWwgZXN0IGxlIHBsdXMgInV0aWxlIGQnYXByw6hzIHZvdXMiPw0KPj4gRGUgcGx1cyBqZSBuZSBwZXV4IHRyYWl0ZXIgZHUgbHV4ZSBlbiBnw6luw6lyYWwuIEplIGRvaXMgY2hvaXNpciB1biBzZWdtZW50IGRlIGNlbHVpLWNpIC4gSmUgc291aGFpdGUgZm9jYWxpc2VyIHN1ciBsYSBqb2FpbGxlcmllIHF1aSBtZSBzZW1ibGUgcGx1cyBkw6lmacOpZSBwYXIgbGUgZGlnaXRhbCBjYXIgY2Ugc29udCBkZXV4ICJtYXJjaMOpcyIgYSBwcmlvcmkgYW50aW5vbWlxdWVzLiBDb21wcmVuZHJlIGxhIGNvbXBsZXhpdMOpIGR1IGR1byBKb2FpbGxlcmllIC8gZGlnaXRhbCBtZSBzZW1ibGUgw6lnYWxlbWVudCBwbHVzIGTDqXRlcm1pbmFudCBwb3VyIGNvbXByZW5kcmUgbGVzIGVuamV1eCBwb3PDqXMgcGFyIGxlIGRpZ2l0YWwuIFF1J2VuIHBlc25lei12b3VzPw0KPj4gDQo-PiBKZSB2b3VzIHJlbWVyY2llIHBhciBhdmFuY2UgcG91ciBsJ2F0dGVudGlvbiBxdWUgdm91cyBhY2NvcmRlcmV6IMOgIG1vbiBwcm9qZXQgZXQgamUgdm91cyBwcm9wb3NlIGRlIGNvbnZlbmlyIGQndW4gcmVuZGV6IC0gdm91cyBwb3VyIGF2YW5jZXIgc3VyIGNlbHVpLWNpLiBKZSBzdWlzIGRpc3BvbmlibGUgY2V0dGUgc2VtYWluZSDDoCB2b3RyZSBjb252ZW5hbmNlIGV0IHZvdXMgcG91dmV6IG3igJlhcHBlbGVyIGF1IDA2IDYyIDE4IDQ3IDA4Lg0KPj4gDQo-PiBCaWVuIMOgIHZvdXMsDQo-PiANCj4-IEFybMOobmUgQmVudG9saWxhDQo-PiANCj4-IA0KPj4gLS0tLS0tLS0tLSBNZXNzYWdlIHRyYW5zZsOpcsOpIC0tLS0tLS0tLS0NCj4-IERlIDogR2hpc2xhaW5lIExlIEdvdWd1ZWMgPGdsZWdvdWd1ZWNAZWRjcGFyaXMuZWR1Pg0KPj4gRGF0ZSA6IDE5IGTDqWNlbWJyZSAyMDE0IDE5OjQ2DQo-PiBPYmpldCA6IFJFOiBTdWpldCBkZSBtw6ltb2lyZSB1bmlxdWUgQXJsw6huZSBldCAiZXhlcmNpY2UiIDogamUgdmV1eCBkw6ltb250cmVyIHF1ZQ0KPj4gw4AgOiBBcmxlbmUgQmVudG9saWxhIDxhcmxlbmViZW50b2xpbGFAZ21haWwuY29tPg0KPj4gQ2MgOiB0ZGVsYXJpdmllcmUgPHRkZWxhcml2aWVyZUBlZGNwYXJpcy5lZHU-DQo-PiANCj4-IA0KPj4gQ2jDqHJlIEFybMOobmUsDQo-PiANCj4-IE1lcmNpIHBvdXIgY2VzIGluZm9ybWF0aW9ucy4NCj4-IA0KPj4gTm91cyBwcmVub25zIG5vdGUgZGUgdm90cmUgbm91dmVhdSBzdWpldCBkZSBtw6ltb2lyZSA6ICBMZXMgZMOpZmlzIGR1IGRpZ2l0YWwgZGFucyBsZXMgc3RyYXTDqWdpZXMgZGUgZMOpdmVsb3BwZW1lbnQgZHUgbHV4ZSBlbiBtYXRpw6hyZSAgZOKAmW9mZnJlLCBkZSBzZXJ2aWNlcywgZGUgZGlzdHJpYnV0aW9uIGV0IGRlIGNvbW11bmljYXRpb24NCj4-IA0KPj4gTm91cyBlbiB2YWxpZG9ucyBsZSB0aMOobWUgbWFpcyBwZW5zb25zIHRvdXRlZm9pcyBxdeKAmWlsIGVzdCBlbmNvcmUgdHJvcCBsYXJnZSBlbiB0ZXJtZSBkZSBww6lyaW3DqHRyZSBk4oCZYW5hbHlzZSArIGplIHBlbnNlIHF1ZSB2b3VzIGRldmV6IHZvdXMgY29uY2VudHJlciBzdXIgdW4gc2VjdGV1ciBldCBub24gbGUgbHV4ZSBlbiBnw6luw6lyYWwuDQo-PiANCj4-IFZvdXMgZGV2ZXogcmVuY29udHJlciBkZXMgcHJvZmVzc2lvbm5lbHMgcmFwaWRlbWVudCBxdWkgdm91cyBhaWRlcm9udCDDoCBkw6lmaW5pciB1bmUgcHJvYmzDqW1hdGlxdWUgcGx1cyBwcsOpY2lzZS4gTWVyY2kgZGUgY29udGFjdGVyIE3DqWxhbmllIHF1aSB2b3VzIGRvbm5lcmEgbGVzIGNvb3Jkb25uw6llcyBkZSBNb25zaWV1ciBHw6lyYWxkIEVTUEFSREVMTElFUiwgRGlyZWN0ZXVyIEFzc29jacOpIGRlIGxhIHNvY2nDqXTDqSBFTk9SQSBDb25zdWx0aW5nICsgY29udGFjdGV6IGRlIG5vdHJlIHBhcnQgRGF2aWQgQWxleGFuZHJlIEtsaW5nYmVpbCwgQ0VPICYgQ28tRm91bmRlciB8IER5bWFudC5jb20gLSAgZGFrQGR5bWFudC5jb20gKyBjbyBmb25kYXRldXIgZHUgbWFnYXppbmUgZGlnaXRhbCBXZWIgJiBMdXhlIGh0dHA6Ly93d3cud2ViYW5kbHV4ZS5jb20vYS1wcm9wb3MvDQo-PiANCj4-IEJpZW4gw6Agdm91cywNCj4-IA0KPj4gR2xHDQo-PiANCj4-ICANCj4-IA0KPj4gIA0KPj4gDQo-PiBEZSA6IEFybGVuZSBCZW50b2xpbGEgW21haWx0bzphcmxlbmViZW50b2xpbGFAZ21haWwuY29tXSANCj4-IEVudm95w6kgOiB2ZW5kcmVkaSAxOSBkw6ljZW1icmUgMjAxNCAxOToxOA0KPj4gw4AgOiBnaGlzbGFpbmUubGVnb3VndWVjQGVkY3BhcmlzLmVkdQ0KPj4gQ2MgOiB0aGliYXV0LmRlbGFyaXZpZXJlQGVkY3BhcmlzLmVkdQ0KPj4gT2JqZXQgOiBTdWpldCBkZSBtw6ltb2lyZSB1bmlxdWUgQXJsw6huZSBldCAiZXhlcmNpY2UiIDogamUgdmV1eCBkw6ltb250cmVyIHF1ZQ0KPj4gDQo-PiAgDQo-PiANCj4-IENoZXJzIHRvdXMNCj4-IA0KPj4gIA0KPj4gDQo-PiBKJ2FpIHJlcGVuc8OpIG1vbiBzdWpldCBkZSBtw6ltb2lyZSBlbiBmb25jdGlvbiBkZSBtZXMgZ2_Du3RzLCBkZSBtZXMgY29tcMOpdGVuY2VzIGV0IGRlIG1lcyBvYmplY3RpZnMgcHJvZmVzc2lvbm5lbHMuIA0KPj4gDQo-PiAgDQo-PiANCj4-IEplIHBhcnMgZG9uYyBzdXIgbGEgdmVyc2lvbiBxdWUgdm91cyBkw6ljb3V2cmlyZXogZW4gcGnDqGNlIGpvaW50ZSBldCBxdWkgcG9ydGUgc3VyIGxlcyBlbmpldXggZHUgZGlnaXRhbCBkYW5zIGxlcyBzdHJhdMOpZ2llcyBkZSBkw6l2ZWxvcHBlbWVudCBkdSBsdXhlIGVuIG1hdGnDqHJlIGQnb2ZmcmUsIGRlIHNlcnZpY2UsIGRlIGRpc3RyaWJ1dGlvbiBldCBkZSBjb21tdW5pY2F0aW9uLiANCj4-IA0KPj4gSmUgbWUgc3VpcyDDqWdhbGVtZW50IHByw6p0w6llIGF1IG7DqWNlc3NhaXJlIGV4ZXJjaWNlIGR1IDogICJqZSB2ZXV4IGTDqW1vbnRyZXIgcXVlIi4NCj4-IA0KPj4gIA0KPj4gDQo-PiBKZSByZXN0ZSDDoCB2b3RyZSDDqWNvdXRlIHBvdXIgZmluYWxpc2VyIGNldHRlIGZpY2hlIHDDqWRhZ29naXF1ZSBldCB2YWxpZGVyIG1vbiBzdWpldCBkZSBtw6ltb2lyZSBhdmFudCBsYSByZW50csOpZSBkZSBqYW52aWVyIHNpIGNlbGEgdm91cyBlc3QgcG9zc2libGUuIEplIHZhaXMgZCdvcmVzIGV0IGTDqWrDoCBjb21tZW5jZXIgbWVzIHJlY2hlcmNoZXMgZXQgZmFpcmUgdW5lIMOpYmF1Y2hlIGRlIHBsYW4gcGVuZGFudCBjZXMgdmFjYW5jZXMuIA0KPj4gDQo-PiAgDQo-PiANCj4-IEplIHZvdXMgc291aGFpdGUgZGUgdHLDqHMgYm9ubmVzIGbDqnRlcy4NCj4-IA0KPj4gIA0KPj4gDQo-PiBCaWVuIMOgIHZvdXMsDQo-PiANCj4-ICANCj4-IA0KPj4gQXJsw6huZQ0KPj4gDQo-IA0K"}}, {:partId=>"1", :mimeType=>"text/html", :filename=>"", :headers=>[{:name=>"Content-Type", :value=>"text/html; charset=utf-8"}, {:name=>"Content-Transfer-Encoding", :value=>"quoted-printable"}], :body=>{:size=>13612, :data=>"PGh0bWw-PGhlYWQ-PG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPjwvaGVhZD48Ym9keSBkaXI9ImF1dG8iPjxkaXY-PGRpdj48cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luOiAwY20gMGNtIDAuMDAwMXB0OyI-PHNwYW4gc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMCk7Ij48Yj5Cb25zb2lyIERhdmlkPC9iPjwvc3Bhbj48L3A-PHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbjogMGNtIDBjbSAwLjAwMDFwdDsiPjxzcGFuIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDApOyI-PGI-PGJyPjwvYj48L3NwYW4-PC9wPjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW46IDBjbSAwY20gMC4wMDAxcHQ7Ij48Yj5NZXJjaSBwb3VyIHZvdHJlIHJldG91ci4gSmUgdmVycmFpIGRlbWFpbiBhdmVjIEp1bGllLCBxdWFuZCBmaXhlciB1biBSRFYgdMOpbMOpcGhvbmlxdWUuJm5ic3A7PC9iPjwvcD48cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luOiAwY20gMGNtIDAuMDAwMXB0OyI-PGI-PGJyPjwvYj48L3A-PHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbjogMGNtIDBjbSAwLjAwMDFwdDsiPjxiPlBvdXIgaW5mb3JtYXRpb24sIGonYWkgYWp1c3TDqSBtb24gc3VqZXQgZGUgbcOpbW9pcmUgcXVlIGplIHRyb3V2YWlzIHRyb3AgY2xhc3NpcXVlIGV0IGNlLCBhcHLDqHMgYXZvaXIgw6ljaGFuZ8OpIGF2ZWMgZGVzIGNvbnN1bHRhbnRzLiAmbmJzcDs8L2I-PC9wPjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW46IDBjbSAwY20gMC4wMDAxcHQ7Ij48Yj5KZSB2b3VzIGwnZXhwb3NlIGNpLWRlc3NvdXMuIFZvcyBjb25zZWlscyBldCByZW1hcnF1ZXMgbWUgc2Vyb250IHRyZXMgdXRpbGVzLiAmbmJzcDs8L2I-PC9wPjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW46IDBjbSAwY20gMC4wMDAxcHQ7Ij48Yj48YnI-PC9iPjwvcD48cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luOiAwY20gMGNtIDAuMDAwMXB0OyI-PGI-U3VqZXQgKGVudm95w6kgw6AgU3VwIGRlIEx1eGUgYXZhbnQgaGllciwgVmVuZHJlZGkpOiZuYnNwOzwvYj48L3A-PHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbjogMGNtIDBjbSAwLjAwMDFwdDsiPjxzcGFuIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDApOyI-PGI-PGJyPjwvYj48L3NwYW4-PC9wPjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW46IDBjbSAwY20gMC4wMDAxcHQ7Ij48c3BhbiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTsiPjxiPkNvbW1lbnQgbGVzIG1hcnF1ZXMgZGUgbW9kZSBldCBkZSBqb2FpbGxlcmllIHMneSBwcmVubmVudCBwb3VyIGFwcHLDqWhlbmRlciBsZXMgb2JqZXRzIGNvbm5lY3TDqXMgZGFucyBsZXVyIHN0cmF0w6lnaWUgZCdvZmZyZT8mbmJzcDs8L2I-PG86cD48L286cD48L3NwYW4-PC9wPjwvZGl2PjxkaXY-PHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbjogMGNtIDBjbSAwLjAwMDFwdDsiPjxzcGFuIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDApOyI-SmUgdmV1eCBkw6ltb250cmVyIHF1ZSBsZXMgb2JqZXRzIGNvbm5lY3TDqXMgc29udCB1biBsZXZpZXIgZGUgY3JvaXNzYW5jZSBldCBkZSBkaWZmw6lyZW5jaWF0aW9uLiBKZSB2ZXV4IGFuYWx5c2VyIGxlcyBjb21wb3J0ZW1lbnRzIGRlcyBtYXJxdWVzIGZhY2Ugw6AgY2V0IGVuamV1eDogdm9udCAtIGVsbGVzIHJlc3TDqWVzIGRhbnMgbGUgY2xhc3NpY2lzbWUgYXZlYyBkZXMgbWF0acOocmVzIG5vYmxlcyBwYXIgZXhlbXBsZSBvdSDDqXZvbHVlciBkZSBmYcOnb24gc2lnbmlmaWNhdGl2ZXMgYXZlYyBsZXMgb2JqZXRzIGNvbm5lY3TDqXM_IENvbW1lbnQgYXBwcsOpaGVuZGVudCAtIGVsbGVzIGNlIGNoYW5nZW1lbnQgZGlnaXRhbCBkYW5zIGxldXIgc3RyYXTDqWdpZSBk4oCZb2ZmcmUgZXQgZGUgZMOpdmVsb3BwZW1lbnQ_PC9zcGFuPjwvcD48cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luOiAwY20gMGNtIDAuMDAwMXB0OyI-PHNwYW4gc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMCk7Ij48YnI-PC9zcGFuPjwvcD48cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luOiAwY20gMGNtIDAuMDAwMXB0OyI-PHNwYW4gc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMCk7Ij5CaWVuIMOgIHZvdXMmbmJzcDs8L3NwYW4-PC9wPjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW46IDBjbSAwY20gMC4wMDAxcHQ7Ij5BcmzDqG5lPC9wPjwvZGl2Pjxicj5BcmzDqG5lIEJlbnRvbGlsYTxkaXY-RW52b3nDqSBkZSBtb24gaVBob25lLjwvZGl2PjxkaXY-MDYgNjIgMTggNDcgMDg8L2Rpdj48ZGl2Pjxicj48L2Rpdj48L2Rpdj48ZGl2Pjxicj5MZSAxMSBqYW52LiAyMDE1IMOgIDE5OjUzLCBEYXZpZCBBbGV4YW5kcmUgS2xpbmdiZWlsICZsdDs8YSBocmVmPSJtYWlsdG86ZGFrQGR5bWFudC5jb20iPmRha0BkeW1hbnQuY29tPC9hPiZndDsgYSDDqWNyaXQmbmJzcDs6PGJyPjxicj48L2Rpdj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48ZGl2PjxkaXYgZGlyPSJsdHIiPkJvbnNvaXIgQXJsZW5lLDxkaXY-PGJyPjwvZGl2PjxkaXY-UGFybG9ucy1lbiBwYXIgdMOpbMOpcGhvbmUgY2V0dGUgc2VtYWluZSBvdSBsYSBzdWl2YW50ZTwvZGl2PjxkaXY-PGJyPjwvZGl2PjxkaXY-SnVsaWUgKGVuIGNjKSB2YSB2b3VzIGNvbnRhY3RlciBwb3VyIHRyb3V2ZXIgdW4gY3LDqW5lYXUgZGUgMzBtaW4gcG91ciB1biBjYWxsLjwvZGl2PjxkaXY-PGJyPjwvZGl2PjxkaXY-UGFzc2V6IHVuZSBleGNlbGxlbnRlIGZpbiBkZSB3ZWVrLWVuZCw8L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PkEgYmllbnTDtHQsPC9kaXY-PGRpdj48YnI-PC9kaXY-PGRpdj5EYXZpZDwvZGl2PjwvZGl2PjxiciBjbGVhcj0iYWxsIj48ZGl2PjxkaXYgY2xhc3M9ImdtYWlsX3NpZ25hdHVyZSI-PGRpdiBkaXI9Imx0ciI-PGRpdj48Yj5EYXZpZCBBbGV4YW5kcmUgS2xpbmdiZWlsPC9iPjwvZGl2PjxkaXY-PHNwYW4gc3R5bGU9ImNvbG9yOnJnYig1MSw1MSw1MSkiPkNFTyAmYW1wOyZuYnNwOzwvc3Bhbj48Zm9udCBjb2xvcj0iIzMzMzMzMyI-Q28tRm91bmRlciB8IDxhIGhyZWY9Imh0dHA6Ly9EeW1hbnQuY29tIiB0YXJnZXQ9Il9ibGFuayI-PGZvbnQgY29sb3I9IiMzMzMzMzMiPjxiPkR5bWFudC5jb208L2I-PC9mb250PjwvYT48L2ZvbnQ-PC9kaXY-PGRpdj4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uPC9kaXY-PGRpdj5NLiA8YSBocmVmPSJtYWlsdG86ZGFrQGR5bWFudC5jb20iIHRhcmdldD0iX2JsYW5rIj5kYWtAZHltYW50LmNvbTwvYT48L2Rpdj48ZGl2PlQgLiArMzMgNiA2MyA5NCA3NyA0MzwvZGl2PjxkaXY-PGEgaHJlZj0iaHR0cDovL3d3dy50d2l0dGVyLmNvbS9kYXZpZGtsaW5nYmVpbCIgdGFyZ2V0PSJfYmxhbmsiPkBEYXZpZEtsaW5nYmVpbDwvYT48L2Rpdj48ZGl2Pi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi48L2Rpdj48ZGl2PjxpbWcgc3JjPSJodHRwOi8vd3d3LmR5bWFudC5jb20vbWVkaWEvdG1wL2NhdGFsb2cvcHJvZHVjdC9kL3kvZHltYW50LWxvZ28tbWFpbC5wbmciPjxicj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj4NCjxkaXYgY2xhc3M9ImdtYWlsX2V4dHJhIj48YnI-PGRpdiBjbGFzcz0iZ21haWxfcXVvdGUiPkxlIDUgamFudmllciAyMDE1IDEzOjE5LCBBcmxlbmUgQmVudG9saWxhIDxzcGFuIGRpcj0ibHRyIj4mbHQ7PGEgaHJlZj0ibWFpbHRvOmFybGVuZWJlbnRvbGlsYUBnbWFpbC5jb20iIHRhcmdldD0iX2JsYW5rIj5hcmxlbmViZW50b2xpbGFAZ21haWwuY29tPC9hPiZndDs8L3NwYW4-IGEgw6ljcml0IDo8YnI-PGJsb2NrcXVvdGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFyZ2luOjAgMCAwIC44ZXg7Ym9yZGVyLWxlZnQ6MXB4ICNjY2Mgc29saWQ7cGFkZGluZy1sZWZ0OjFleCI-PGRpdiBkaXI9Imx0ciI-PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxM3B4Ij5DaGVyIE1vbnNpZXVyLDwvc3Bhbj48ZGl2Pjxicj48L2Rpdj48ZGl2PkonYWkgbGUgcGxhaXNpciBkZSB2b3VzIGNvbnRhY3RlciBzdXIgbGVzIGNvbnNlaWxzIGRlIE1hZGFtZSBsZSBHb3VndWVjLCBEaXJlY3RyaWNlIHDDqWRhZ29naXF1ZSDDoCBTdXAgZGUgTHV4ZSBkYW5zIGxlIGNhZHJlIGRlIGxhIHByw6lwYXJhdGlvbiBkZSBtb24gbcOpbW9pcmUuIENlbHVpIC0gY2kgZG9pdCDDqnRyZSB1biByYXBwb3J0IHByb2Zlc3Npb25uZWwgY29uY3JldCBldCBwZXJ0aW5lbnQgZXQgbm9uIHBhcyAiYWNhZMOpbWlxdWUuIEplIHZvdXMgcHJvcG9zZSBkJ2VuIGTDqWNvdXZyaXIgbGUgc3VqZXQgZW4gcGnDqGNlIGpvaW50ZSBldCBsYSByw6lwb25zZSBkZSBTdXAgZGUgTHV4ZSBlbiBiYXMgZGUgY2UgbWFpbC4mbmJzcDs8L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PkRhbnMgbGEgcGVyc3BlY3RpdmUgZGUgdm91cyByZW5jb250cmVyLCBqZSBtZSBwcm9wb3NlIGRlIHZvdXMgcsOpc3VtZXIgbW9uIHBhcmNvdXJzIGV0IG1vbiBvYmplY3RpZiBwcm9mZXNzaW9ubmVscyBlbiByYXBwb3J0IGF2ZWMgbW9uIG3DqW1vaXJlLiZuYnNwOzwvZGl2PjxkaXY-PGJyPjwvZGl2PjxkaXY-PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxM3B4Ij48Yj5QYXJjb3VyczwvYj48L3NwYW4-PC9kaXY-PGRpdj5KJ2FpIHVuZSBleHDDqXJpZW5jZSBwcm9mZXNzaW9ubmVsbGUgZGUgcHLDqHMgZGUgMTUgYW5zIGVuIHRhbnQgcXVlIERpcmVjdHJpY2UgZGUgY2xpZW50w6hsZSBwcmVzc2Ugw6ljcml0ZSBhdSBzZWluIGRlIGdyYW5kcyBncm91cGVzJm5ic3A7bcOpZGlhcyZuYnNwOyhUw6lsw6lyYW1hLCBMYWdhcmTDqHJlKS4gSidhaSBzcMOpY2lhbGlzw6kgY2V0dGUmbmJzcDtleHDDqXJpZW5jZSBjb21tZXJjaWFsZSBkZXB1aXMgOCBhbnMgc3VyIGxlcyBzZWN0ZXVycyBkdSBsdXhlIGV0IGRlIGxhIG1vZGUgZW4gdHJhdmFpbGxhbnQgc3VyIGxlcyBwcm9qZXRzIGRlIGNvbW11bmljYXRpb24gcHVibGljaXRhaXJlIGRlcyBhbm5vbmNldXJzIGTDqWRpw6lzIGV0IHBvdXIgZGVzIG1hcnF1ZXMgZGUgcHJlc3NlIGhhdXQgZGUgZ2FtbWUgZXQgbHV4ZSAoRWxsZSwgTnVtw6lyby47OykuIE1vbiBDViBlc3QgZW4gcGnDqGNlIGpvaW50ZS48YnI-PC9kaXY-PGRpdj48ZGl2IHN0eWxlPSJmb250LXNpemU6MTNweCI-PGJyPjwvZGl2PjxkaXYgc3R5bGU9ImZvbnQtc2l6ZToxM3B4Ij48Yj5Qcm9qZXQgcHJvZmVzc2lvbm5lbDwvYj48L2Rpdj48ZGl2IHN0eWxlPSJmb250LXNpemU6MTNweCI-SmUgdmV1eCBhbGxleiBwbHVzIGxvaW4gZGFucyBtb24gZMOpdmVsb3BwZW1lbnQgZGUgbWFycXVlcyBkZSBsdXhlIHNvaXQgYXUgbml2ZWF1IGNvbW1lcmNpYWwgc29pdCBhdSBuaXZlYXUgZGUgbGEgY29tbXVuaWNhdGlvbiBldCBjJ2VzdCBwb3VycXVvaSBqJ2FpIGludMOpZ3LDqSBTdXAgZGUgTHV4ZS4gSmUgdmlzZSBwb3VyIHNlcHRlbWJyZSBhdSBwbHVzIHRhcmQsIHVuZSBhY3Rpdml0w6kgY29tbWVyY2lhbGUgYXUgc2VpbiBkJ3VuZSBtYXJxdWUgZGUgbHV4ZS9tb2RlIG91IGVuIGFnZW5jZSAoZMOpdmVsb3BwZW1lbnQgb3UgY29uc2VpbCkuIFBvdXIgeSBwYXJ2ZW5pciBldCBlbnJpY2hpciBtYSB2YWxldXIgc3VyIGxlIG1hcmNow6ksIGplIGRvaXMgY29uc29saWRlciBjZSBxdWkgcydpbXBvc2UsIGxlIGRpZ2l0YWwhPC9kaXY-PGRpdiBzdHlsZT0iZm9udC1zaXplOjEzcHgiPjxicj48L2Rpdj48ZGl2IHN0eWxlPSJmb250LXNpemU6MTNweCI-PGI-TcOpbW9pcmUgLSByYXBwb3J0IFN1cCBkZSBMdXhlPC9iPjwvZGl2PjxkaXYgc3R5bGU9ImZvbnQtc2l6ZToxM3B4Ij5KJ2FpIGRvbmMgb3B0w6kgcG91ciB1biBzdWpldCBkZSBtw6ltb2lyZSBxdWkgcG9ydGUgc3VyIGxlIGx1eGUgZMOpZmnDqSBwYXIgbGUgZGlnaXRhbC4gSmUgdmV1eCBkw6ltb250cmVyIHF1ZSBsZSBsdXhlIGVzdCByw6l0aWNlbnQgZmFjZSBhdSBkaWdpdGFsLCBwb3VydGFudCBkw6ljaXNpZiBkYW5zIGwnYXBwb3J0IGRlIG5vdXZlYXV4IHNlcnZpY2VzIGV0IGRhbnMgbGUgZMOpcGxvaWVtZW50IGR1IGx1eGUuICZuYnNwOzwvZGl2PjxkaXYgc3R5bGU9ImZvbnQtc2l6ZToxM3B4Ij48dWw-PGxpIHN0eWxlPSJtYXJnaW4tbGVmdDoxNXB4Ij5NYWlzIG1vbiBzdWpldCBlc3QgdHJvcCBsYXJnZS4gSmUgbmUgcGV1eCB0cmFpdGVyIGRlIHRvdXMgbGVzIHNlcnZpY2VzIGFwcG9ydMOpcyBwYXIgbGUgZGlnaXRhbC4gSidow6lzaXRlIGVudHJlIGxhIGNvbW11bmljYXRpb24gZXQgbGEgc3RyYXTDqWdpZSBkJ29mZnJlIChwcm9kdWl0cykuIFF1ZWwgZXN0IGxlIHBsdXMgInV0aWxlIGQnYXByw6hzIHZvdXMiPzwvbGk-PC91bD48dWw-PGxpIHN0eWxlPSJtYXJnaW4tbGVmdDoxNXB4Ij5EZSBwbHVzIGplIG5lIHBldXggdHJhaXRlciBkdSBsdXhlIGVuIGfDqW7DqXJhbC4gSmUgZG9pcyBjaG9pc2lyIHVuIHNlZ21lbnQgZGUgY2VsdWktY2kgLiBKZSBzb3VoYWl0ZSBmb2NhbGlzZXIgc3VyIGxhIGpvYWlsbGVyaWUgcXVpIG1lIHNlbWJsZSBwbHVzIGTDqWZpw6llIHBhciBsZSBkaWdpdGFsIGNhciBjZSBzb250IGRldXggIm1hcmNow6lzIiBhIHByaW9yaSBhbnRpbm9taXF1ZXMuIENvbXByZW5kcmUgbGEgY29tcGxleGl0w6kgZHUgZHVvIEpvYWlsbGVyaWUgLyBkaWdpdGFsIG1lIHNlbWJsZSDDqWdhbGVtZW50IHBsdXMgZMOpdGVybWluYW50IHBvdXIgY29tcHJlbmRyZSBsZXMgZW5qZXV4IHBvc8OpcyBwYXIgbGUgZGlnaXRhbC4gUXUnZW4gcGVzbmV6LXZvdXM_PC9saT48L3VsPjwvZGl2PjxkaXYgc3R5bGU9ImZvbnQtc2l6ZToxM3B4Ij48YnI-PC9kaXY-PGRpdiBzdHlsZT0iZm9udC1zaXplOjEzcHgiPkplIHZvdXMgcmVtZXJjaWUgcGFyIGF2YW5jZSBwb3VyIGwnYXR0ZW50aW9uIHF1ZSB2b3VzIGFjY29yZGVyZXogw6AgbW9uIHByb2pldCBldCBqZSB2b3VzIHByb3Bvc2UgZGUgY29udmVuaXIgZCd1biByZW5kZXogLSB2b3VzIHBvdXIgYXZhbmNlciBzdXIgY2VsdWktY2kuIEplIHN1aXMgZGlzcG9uaWJsZSBjZXR0ZSBzZW1haW5lIMOgIHZvdHJlIGNvbnZlbmFuY2UgZXQgdm91cyBwb3V2ZXogbeKAmWFwcGVsZXIgYXUgPGEgaHJlZj0idGVsOjA2JTIwNjIlMjAxOCUyMDQ3JTIwMDgiIHZhbHVlPSIrMzM2NjIxODQ3MDgiIHRhcmdldD0iX2JsYW5rIj4wNiA2MiAxOCA0NyAwODwvYT4uPC9kaXY-PGRpdiBzdHlsZT0iZm9udC1zaXplOjEzcHgiPjxicj48L2Rpdj48ZGl2IHN0eWxlPSJmb250LXNpemU6MTNweCI-QmllbiDDoCB2b3VzLDwvZGl2PjxkaXYgc3R5bGU9ImZvbnQtc2l6ZToxM3B4Ij48YnI-PC9kaXY-PGRpdiBzdHlsZT0iZm9udC1zaXplOjEzcHgiPkFybMOobmUgQmVudG9saWxhPC9kaXY-PGRpdiBzdHlsZT0iZm9udC1zaXplOjEzcHgiPjxicj48L2Rpdj48ZGl2IHN0eWxlPSJmb250LXNpemU6MTNweCI-PGJyPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImdtYWlsX3F1b3RlIj4tLS0tLS0tLS0tIE1lc3NhZ2UgdHJhbnNmw6lyw6kgLS0tLS0tLS0tLTxicj5EZSZuYnNwOzogPGIgY2xhc3M9ImdtYWlsX3NlbmRlcm5hbWUiPkdoaXNsYWluZSBMZSBHb3VndWVjPC9iPiA8c3BhbiBkaXI9Imx0ciI-Jmx0OzxhIGhyZWY9Im1haWx0bzpnbGVnb3VndWVjQGVkY3BhcmlzLmVkdSIgdGFyZ2V0PSJfYmxhbmsiPmdsZWdvdWd1ZWNAZWRjcGFyaXMuZWR1PC9hPiZndDs8L3NwYW4-PGJyPkRhdGUmbmJzcDs6IDE5IGTDqWNlbWJyZSAyMDE0IDE5OjQ2PGJyPk9iamV0Jm5ic3A7OiBSRTogU3VqZXQgZGUgbcOpbW9pcmUgdW5pcXVlIEFybMOobmUgZXQgImV4ZXJjaWNlIiA6IGplIHZldXggZMOpbW9udHJlciBxdWU8YnI-w4AmbmJzcDs6IEFybGVuZSBCZW50b2xpbGEgJmx0OzxhIGhyZWY9Im1haWx0bzphcmxlbmViZW50b2xpbGFAZ21haWwuY29tIiB0YXJnZXQ9Il9ibGFuayI-YXJsZW5lYmVudG9saWxhQGdtYWlsLmNvbTwvYT4mZ3Q7PGJyPkNjIDogdGRlbGFyaXZpZXJlICZsdDs8YSBocmVmPSJtYWlsdG86dGRlbGFyaXZpZXJlQGVkY3BhcmlzLmVkdSIgdGFyZ2V0PSJfYmxhbmsiPnRkZWxhcml2aWVyZUBlZGNwYXJpcy5lZHU8L2E-Jmd0Ozxicj48YnI-PGJyPjxkaXYgbGFuZz0iRlIiIGxpbms9ImJsdWUiIHZsaW5rPSJwdXJwbGUiPjxkaXY-PHAgY2xhc3M9Ik1zb05vcm1hbCI-PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OidNYWlhbmRyYSBHRCcsc2Fucy1zZXJpZjtjb2xvcjpibGFjayI-Q2jDqHJlIEFybMOobmUsPHU-PC91Pjx1PjwvdT48L3NwYW4-PC9wPjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTonTWFpYW5kcmEgR0QnLHNhbnMtc2VyaWY7Y29sb3I6YmxhY2siPk1lcmNpIHBvdXIgY2VzIGluZm9ybWF0aW9ucy4gPHU-PC91Pjx1PjwvdT48L3NwYW4-PC9wPjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTonTWFpYW5kcmEgR0QnLHNhbnMtc2VyaWY7Y29sb3I6YmxhY2siPk5vdXMgcHJlbm9ucyBub3RlIGRlIHZvdHJlIG5vdXZlYXUgc3VqZXQgZGUgbcOpbW9pcmUmbmJzcDs6ICZuYnNwOzwvc3Bhbj48Yj48dT48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6J01haWFuZHJhIEdEJyxzYW5zLXNlcmlmO2NvbG9yOmJsYWNrIj5MZXMgZMOpZmlzPGEgbmFtZT0iMTRhYmEwOTg2OTQwNTdiNl8xNGE2M2RlZjk5ZmU2NzJhX19Hb0JhY2siPjwvYT4gZHUgZGlnaXRhbCBkYW5zIGxlcyBzdHJhdMOpZ2llcyBkZSBkw6l2ZWxvcHBlbWVudCBkdSBsdXhlIGVuIG1hdGnDqHJlJm5ic3A7IGTigJlvZmZyZSwgZGUgc2VydmljZXMsIGRlIGRpc3RyaWJ1dGlvbiBldCBkZSBjb21tdW5pY2F0aW9uPC9zcGFuPjwvdT48L2I-PHU-PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OidNYWlhbmRyYSBHRCcsc2Fucy1zZXJpZjtjb2xvcjpibGFjayI-PHU-PC91Pjx1PjwvdT48L3NwYW4-PC91PjwvcD48cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6J01haWFuZHJhIEdEJyxzYW5zLXNlcmlmO2NvbG9yOmJsYWNrIj5Ob3VzIGVuIHZhbGlkb25zIGxlIHRow6htZSBtYWlzIHBlbnNvbnMgdG91dGVmb2lzIHF14oCZaWwgZXN0IGVuY29yZSB0cm9wIGxhcmdlIGVuIHRlcm1lIGRlIHDDqXJpbcOodHJlIGTigJlhbmFseXNlICsgamUgcGVuc2UgcXVlIHZvdXMgZGV2ZXogdm91cyBjb25jZW50cmVyIHN1ciB1biBzZWN0ZXVyIGV0IG5vbiBsZSBsdXhlIGVuIGfDqW7DqXJhbC48dT48L3U-PHU-PC91Pjwvc3Bhbj48L3A-PHAgY2xhc3M9Ik1zb05vcm1hbCI-PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OidNYWlhbmRyYSBHRCcsc2Fucy1zZXJpZjtjb2xvcjpibGFjayI-Vm91cyBkZXZleiByZW5jb250cmVyIGRlcyBwcm9mZXNzaW9ubmVscyByYXBpZGVtZW50IHF1aSB2b3VzIGFpZGVyb250IMOgIGTDqWZpbmlyIHVuZSBwcm9ibMOpbWF0aXF1ZSBwbHVzIHByw6ljaXNlLiBNZXJjaSBkZSBjb250YWN0ZXIgTcOpbGFuaWUgcXVpIHZvdXMgZG9ubmVyYSBsZXMgY29vcmRvbm7DqWVzIGRlIE1vbnNpZXVyIEfDqXJhbGQgRVNQQVJERUxMSUVSLCBEaXJlY3RldXIgQXNzb2Npw6kgZGUgbGEgc29jacOpdMOpIEVOT1JBIENvbnN1bHRpbmcgKyBjb250YWN0ZXogZGUgbm90cmUgcGFydCBEYXZpZCBBbGV4YW5kcmUgS2xpbmdiZWlsLCBDRU8gJmFtcDsmbmJzcDtDby1Gb3VuZGVyIHwgPGEgaHJlZj0iaHR0cDovL0R5bWFudC5jb20iIHRhcmdldD0iX2JsYW5rIj48c3BhbiBzdHlsZT0iY29sb3I6YmxhY2s7dGV4dC1kZWNvcmF0aW9uOm5vbmUiPkR5bWFudC5jb208L3NwYW4-PC9hPiAtIDwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6J01haWFuZHJhIEdEJyxzYW5zLXNlcmlmO2NvbG9yOmJsYWNrIj4mbmJzcDs8YSBocmVmPSJtYWlsdG86ZGFrQGR5bWFudC5jb20iIHRhcmdldD0iX2JsYW5rIj48c3BhbiBzdHlsZT0iY29sb3I6YmxhY2siPmRha0BkeW1hbnQuY29tPC9zcGFuPjwvYT4gPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTonTWFpYW5kcmEgR0QnLHNhbnMtc2VyaWY7Y29sb3I6YmxhY2siPisgY28gZm9uZGF0ZXVyIGR1IG1hZ2F6aW5lIGRpZ2l0YWwgV2ViICZhbXA7IEx1eGUgPGEgaHJlZj0iaHR0cDovL3d3dy53ZWJhbmRsdXhlLmNvbS9hLXByb3Bvcy8iIHRhcmdldD0iX2JsYW5rIj5odHRwOi8vd3d3LndlYmFuZGx1eGUuY29tL2EtcHJvcG9zLzwvYT48dT48L3U-PHU-PC91Pjwvc3Bhbj48L3A-PHAgY2xhc3M9Ik1zb05vcm1hbCI-PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OidNYWlhbmRyYSBHRCcsc2Fucy1zZXJpZjtjb2xvcjpibGFjayI-QmllbiDDoCB2b3VzLDx1PjwvdT48dT48L3U-PC9zcGFuPjwvcD48cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6J01haWFuZHJhIEdEJyxzYW5zLXNlcmlmO2NvbG9yOmJsYWNrIj5HbEc8dT48L3U-PHU-PC91Pjwvc3Bhbj48L3A-PHAgY2xhc3M9Ik1zb05vcm1hbCI-PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkNhbGlicmksc2Fucy1zZXJpZjtjb2xvcjpyZ2IoMzEsNzMsMTI1KSI-PHU-PC91PiZuYnNwOzx1PjwvdT48L3NwYW4-PC9wPjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpDYWxpYnJpLHNhbnMtc2VyaWY7Y29sb3I6cmdiKDMxLDczLDEyNSkiPjx1PjwvdT4mbmJzcDs8dT48L3U-PC9zcGFuPjwvcD48ZGl2IHN0eWxlPSJib3JkZXItc3R5bGU6c29saWQgbm9uZSBub25lO2JvcmRlci10b3AtY29sb3I6cmdiKDE4MSwxOTYsMjIzKTtib3JkZXItdG9wLXdpZHRoOjFwdDtwYWRkaW5nOjNwdCAwY20gMGNtIj48cCBjbGFzcz0iTXNvTm9ybWFsIj48Yj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwcHQ7Zm9udC1mYW1pbHk6VGFob21hLHNhbnMtc2VyaWYiPkRlJm5ic3A7Ojwvc3Bhbj48L2I-PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMHB0O2ZvbnQtZmFtaWx5OlRhaG9tYSxzYW5zLXNlcmlmIj4gQXJsZW5lIEJlbnRvbGlsYSBbbWFpbHRvOjxhIGhyZWY9Im1haWx0bzphcmxlbmViZW50b2xpbGFAZ21haWwuY29tIiB0YXJnZXQ9Il9ibGFuayI-YXJsZW5lYmVudG9saWxhQGdtYWlsLmNvbTwvYT5dIDxicj48Yj5FbnZvecOpJm5ic3A7OjwvYj4gdmVuZHJlZGkgMTkgZMOpY2VtYnJlIDIwMTQgMTk6MTg8YnI-PGI-w4AmbmJzcDs6PC9iPiA8YSBocmVmPSJtYWlsdG86Z2hpc2xhaW5lLmxlZ291Z3VlY0BlZGNwYXJpcy5lZHUiIHRhcmdldD0iX2JsYW5rIj5naGlzbGFpbmUubGVnb3VndWVjQGVkY3BhcmlzLmVkdTwvYT48YnI-PGI-Q2MmbmJzcDs6PC9iPiA8YSBocmVmPSJtYWlsdG86dGhpYmF1dC5kZWxhcml2aWVyZUBlZGNwYXJpcy5lZHUiIHRhcmdldD0iX2JsYW5rIj50aGliYXV0LmRlbGFyaXZpZXJlQGVkY3BhcmlzLmVkdTwvYT48YnI-PGI-T2JqZXQmbmJzcDs6PC9iPiBTdWpldCBkZSBtw6ltb2lyZSB1bmlxdWUgQXJsw6huZSBldCAiZXhlcmNpY2UiIDogamUgdmV1eCBkw6ltb250cmVyIHF1ZTx1PjwvdT48dT48L3U-PC9zcGFuPjwvcD48L2Rpdj48ZGl2PjxkaXY-PHAgY2xhc3M9Ik1zb05vcm1hbCI-PHU-PC91PiZuYnNwOzx1PjwvdT48L3A-PGRpdj48cCBjbGFzcz0iTXNvTm9ybWFsIj5DaGVycyB0b3VzPHU-PC91Pjx1PjwvdT48L3A-PGRpdj48cCBjbGFzcz0iTXNvTm9ybWFsIj48dT48L3U-Jm5ic3A7PHU-PC91PjwvcD48L2Rpdj48ZGl2PjxwIGNsYXNzPSJNc29Ob3JtYWwiPkonYWkgcmVwZW5zw6kgbW9uIHN1amV0IGRlIG3DqW1vaXJlIGVuIGZvbmN0aW9uIGRlIG1lcyBnb8O7dHMsIGRlIG1lcyBjb21ww6l0ZW5jZXMgZXQgZGUgbWVzIG9iamVjdGlmcyBwcm9mZXNzaW9ubmVscy4mbmJzcDs8dT48L3U-PHU-PC91PjwvcD48L2Rpdj48ZGl2PjxwIGNsYXNzPSJNc29Ob3JtYWwiPjx1PjwvdT4mbmJzcDs8dT48L3U-PC9wPjwvZGl2PjxkaXY-PHAgY2xhc3M9Ik1zb05vcm1hbCI-SmUgcGFycyBkb25jIHN1ciBsYSB2ZXJzaW9uIHF1ZSB2b3VzIGTDqWNvdXZyaXJleiBlbiBwacOoY2Ugam9pbnRlIGV0IHF1aSBwb3J0ZSBzdXIgbGVzIGVuamV1eCBkdSBkaWdpdGFsIGRhbnMgbGVzIHN0cmF0w6lnaWVzIGRlIGTDqXZlbG9wcGVtZW50IGR1IGx1eGUgZW4gbWF0acOocmUgZCdvZmZyZSwgZGUgc2VydmljZSwgZGUgZGlzdHJpYnV0aW9uIGV0IGRlIGNvbW11bmljYXRpb24uJm5ic3A7PHU-PC91Pjx1PjwvdT48L3A-PC9kaXY-PGRpdj48cCBjbGFzcz0iTXNvTm9ybWFsIj5KZSBtZSBzdWlzIMOpZ2FsZW1lbnQgcHLDqnTDqWUgYXUgbsOpY2Vzc2FpcmUgZXhlcmNpY2UgZHUgOiAmbmJzcDsiamUgdmV1eCBkw6ltb250cmVyIHF1ZSIuPHU-PC91Pjx1PjwvdT48L3A-PC9kaXY-PGRpdj48cCBjbGFzcz0iTXNvTm9ybWFsIj48dT48L3U-Jm5ic3A7PHU-PC91PjwvcD48L2Rpdj48ZGl2PjxwIGNsYXNzPSJNc29Ob3JtYWwiPkplIHJlc3RlIMOgIHZvdHJlIMOpY291dGUgcG91ciBmaW5hbGlzZXIgY2V0dGUgZmljaGUgcMOpZGFnb2dpcXVlIGV0IHZhbGlkZXIgbW9uIHN1amV0IGRlIG3DqW1vaXJlIGF2YW50IGxhIHJlbnRyw6llIGRlIGphbnZpZXIgc2kgY2VsYSB2b3VzIGVzdCBwb3NzaWJsZS4gSmUgdmFpcyBkJ29yZXMgZXQgZMOpasOgIGNvbW1lbmNlciBtZXMgcmVjaGVyY2hlcyBldCBmYWlyZSB1bmUgw6liYXVjaGUgZGUgcGxhbiBwZW5kYW50IGNlcyB2YWNhbmNlcy4mbmJzcDs8dT48L3U-PHU-PC91PjwvcD48L2Rpdj48ZGl2PjxwIGNsYXNzPSJNc29Ob3JtYWwiPjx1PjwvdT4mbmJzcDs8dT48L3U-PC9wPjwvZGl2PjxkaXY-PHAgY2xhc3M9Ik1zb05vcm1hbCI-SmUgdm91cyBzb3VoYWl0ZSBkZSB0csOocyBib25uZXMgZsOqdGVzLjx1PjwvdT48dT48L3U-PC9wPjwvZGl2PjxkaXY-PHAgY2xhc3M9Ik1zb05vcm1hbCI-PHU-PC91PiZuYnNwOzx1PjwvdT48L3A-PC9kaXY-PGRpdj48cCBjbGFzcz0iTXNvTm9ybWFsIj5CaWVuIMOgIHZvdXMsPHU-PC91Pjx1PjwvdT48L3A-PC9kaXY-PGRpdj48cCBjbGFzcz0iTXNvTm9ybWFsIj48dT48L3U-Jm5ic3A7PHU-PC91PjwvcD48L2Rpdj48ZGl2PjxwIGNsYXNzPSJNc29Ob3JtYWwiPkFybMOobmU8dT48L3U-PHU-PC91PjwvcD48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj4NCjxicj48YnI-PC9kaXY-PC9kaXY-PGJyPjwvZGl2Pg0KPC9ibG9ja3F1b3RlPjwvZGl2Pjxicj48L2Rpdj4NCjwvZGl2PjwvYmxvY2txdW90ZT48L2JvZHk-PC9odG1sPg=="}}]}, :sizeEstimate=>26532}.merge(params)
142
+ end
143
+
144
+
145
+ def test_to_reply_message(params = {})
146
+ {:id=>"14aecf708ee65122", :threadId=>"14aecf708ee65122", :labelIds=>["INBOX", "IMPORTANT", "CATEGORY_PERSONAL", "UNREAD"], :snippet=>"coucou Julien Hobeika | Co-Founder &amp; CEO Email: julien@juliedesk.com Tel: +33 6 63 33 17 55 Julie", :historyId=>"232755", :payload=>{:mimeType=>"multipart/alternative", :filename=>"", :headers=>[{:name=>"Delivered-To", :value=>"julie@juliedesk.com"}, {:name=>"Received", :value=>"by 10.64.89.39 with SMTP id bl7csp1888330ieb; Thu, 15 Jan 2015 01:40:21 -0800 (PST)"}, {:name=>"X-Received", :value=>"by 10.194.2.75 with SMTP id 11mr16697173wjs.78.1421314820755; Thu, 15 Jan 2015 01:40:20 -0800 (PST)"}, {:name=>"Return-Path", :value=>"<julien@wepopp.com>"}, {:name=>"Received", :value=>"from mail-wg0-f52.google.com (mail-wg0-f52.google.com. [74.125.82.52]) by mx.google.com with ESMTPS id cz7si1861265wjc.17.2015.01.15.01.40.19 for <julie@juliedesk.com> (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 15 Jan 2015 01:40:20 -0800 (PST)"}, {:name=>"Received-SPF", :value=>"pass (google.com: domain of julien@wepopp.com designates 74.125.82.52 as permitted sender) client-ip=74.125.82.52;"}, {:name=>"Authentication-Results", :value=>"mx.google.com; spf=pass (google.com: domain of julien@wepopp.com designates 74.125.82.52 as permitted sender) smtp.mail=julien@wepopp.com"}, {:name=>"Received", :value=>"by mail-wg0-f52.google.com with SMTP id x12so13734359wgg.11 for <julie@juliedesk.com>; Thu, 15 Jan 2015 01:40:19 -0800 (PST)"}, {:name=>"X-Google-DKIM-Signature", :value=>"v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc :content-type; bh=VX+NTBD3y6zC7y2eoK6dXfXslqvi6t2cSoTCjb3ydPE=; b=GJnt5rk9Ck0uf9drEbY8tmxHqEosl3+89TyqId0TMttNgmjhV+rTX5tGe1N1wbPS0o ZMl5zDe/A5GGd7PHa8ykZZwNv5GQn0cjMQIMs+nMyUTUCUYeioWirF3frDJ8siV7+EXF s+l5+8Ul3suVPTcg5+zoNGgTJu3mWBC4E+1KMbVLYNOZtOd5PEMJPCZuTu2/k8Vw0Iw6 8JG02sSAzWRxNJnUoCRrShTV7C+eNRehvI7utHGMrobP1chWb2qZgLvbwGnpo/eBceya XWo/bpd9OcAYhb0spf0M2pXJ6TL/fzYbplFj0Lj8sXfRphQJivUjUVj4F02Tty2HpQ+q 4kQw=="}, {:name=>"X-Gm-Message-State", :value=>"ALoCoQk6eM56sO2fhoPw1I+al4RvoL3xd/Mzo7nmPK4WlB/OUaOD0isPUduI2MUrEdZgQ8tty/AH"}, {:name=>"X-Received", :value=>"by 10.180.126.99 with SMTP id mx3mr17257983wib.66.1421314819809; Thu, 15 Jan 2015 01:40:19 -0800 (PST)"}, {:name=>"MIME-Version", :value=>"1.0"}, {:name=>"Received", :value=>"by 10.180.8.228 with HTTP; Thu, 15 Jan 2015 01:39:59 -0800 (PST)"}, {:name=>"From", :value=>"Julien Hobeika <julien@juliedesk.com>"}, {:name=>"Date", :value=>"Thu, 15 Jan 2015 10:39:59 +0100"}, {:name=>"Message-ID", :value=>"<CAA-2G7UbpEhf1G6-fF_ruSew7SRjsOpU+wPbmWufrknmbxQVZg@mail.gmail.com>"}, {:name=>"Subject", :value=>"test reply message"}, {:name=>"To", :value=>"Julie Desk <julie@juliedesk.com>, Julien Hobeika <julien.hobeika@gmail.com>"}, {:name=>"Cc", :value=>"Julien Hobeika <julien@juliedesk.com>, Nicolas Marlier <nicolas@wepopp.com>"}, {:name=>"Content-Type", :value=>"multipart/alternative; boundary=e89a8f8389d1f2fbe9050cada4ac"}], :body=>{:size=>0}, :parts=>[{:partId=>"0", :mimeType=>"text/plain", :filename=>"", :headers=>[{:name=>"Content-Type", :value=>"text/plain; charset=UTF-8"}, {:name=>"Content-Transfer-Encoding", :value=>"quoted-printable"}], :body=>{:size=>144, :data=>"Y291Y291DQoNCg0KKkp1bGllbiBIb2JlaWthIHwgQ28tRm91bmRlciAmIENFTypFbWFpbDoganVsaWVuQGp1bGllZGVzay5jb20NClRlbDogKzMzIDYgNjMgMzMgMTcgNTUNCg0KKkp1bGllIERlc2sqDQp3d3cuanVsaWVkZXNrLmNvbQ0KDQoNCuGQpw0K"}}, {:partId=>"1", :mimeType=>"text/html", :filename=>"", :headers=>[{:name=>"Content-Type", :value=>"text/html; charset=UTF-8"}, {:name=>"Content-Transfer-Encoding", :value=>"quoted-printable"}], :body=>{:size=>742, :data=>"PGRpdiBkaXI9Imx0ciI-Y291Y291PGJyIGNsZWFyPSJhbGwiPjxkaXY-PGRpdiBjbGFzcz0iZ21haWxfc2lnbmF0dXJlIj48ZGl2IGRpcj0ibHRyIj48cD48Yj5KdWxpZW4gSG9iZWlrYSB8IENvLUZvdW5kZXIgJmFtcDsgQ0VPPGJyPjwvYj5FbWFpbDrCoDxhIGhyZWY9Im1haWx0bzpqdWxpZW5AanVsaWVkZXNrLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPmp1bGllbkBqdWxpZWRlc2suY29tPC9hPjxicj5UZWw6ICszMyA2IDYzIDMzIDE3IDU1PC9wPjxwPjxiPkp1bGllIERlc2s8L2I-PGI-PGJyPjwvYj48YSBocmVmPSJodHRwOi8vd3d3Lmp1bGllZGVzay5jb20vIiBzdHlsZT0iY29sb3I6cmdiKDE3LDg1LDIwNCk7Zm9udC1mYW1pbHk6SGVsdmV0aWNhIiB0YXJnZXQ9Il9ibGFuayI-d3d3Lmp1bGllZGVzay5jb208L2E-PGI-PGJyPjwvYj48L3A-PHA-PGJyPjwvcD48L2Rpdj48L2Rpdj48L2Rpdj4NCjxkaXYgaHNwYWNlPSJzdHJlYWstcHQtbWFyayIgc3R5bGU9Im1heC1oZWlnaHQ6MXB4Ij48aW1nIHN0eWxlPSJ3aWR0aDowcHg7IG1heC1oZWlnaHQ6MHB4OyIgc3JjPSJodHRwczovL21haWxmb29nYWUuYXBwc3BvdC5jb20vdD9zZW5kZXI9YWFuVnNhV1Z1UUhkbGNHOXdjQzVqYjIwJTNEJmFtcDt0eXBlPXplcm9jb250ZW50JmFtcDtndWlkPTBiMWRiODRkLTFmMTctNDE1MS05ZmE5LTUxMWNiYTg0ODAyMiI-PGZvbnQgY29sb3I9IiNmZmZmZmYiIHNpemU9IjEiPuGQpzwvZm9udD48L2Rpdj48L2Rpdj4NCg=="}}]}, :sizeEstimate=>3710}
147
+ end
148
+
149
+ def test_reply_message(params = {})
150
+ {body: "test"}
151
+ end
152
+
153
+ def test_replied_message(params = {})
154
+ {:id=>"14aecf9e31d945ba", :threadId=>"14aecf708ee65122", :labelIds=>["SENT", "INBOX", "UNREAD"], :snippet=>"test Thu, 15 Jan 2015 10:39:59 +0100 Julien Hobeika &lt;julien@juliedesk.com&gt;: &gt;coucou &gt;", :historyId=>"232799", :payload=>{:partId=>"", :mimeType=>"text/plain", :filename=>"", :headers=>[{:name=>"Received", :value=>"from 992877924458-i6nbjvo0fspv8hpmpss0i9aglneqrdpm.apps.googleusercontent.com named unknown by gmailapi.google.com with HTTPREST; Thu, 15 Jan 2015 01:43:27 -0800"}, {:name=>"Date", :value=>"Thu, 15 Jan 2015 01:43:27 -0800"}, {:name=>"To", :value=>"Julien Hobeika <julien@juliedesk.com>"}, {:name=>"Cc", :value=>"Julie Desk <julie@juliedesk.com>, Julien Hobeika <julien.hobeika@gmail.com>, Julien Hobeika <julien@juliedesk.com>, Nicolas Marlier <nicolas@wepopp.com>"}, {:name=>"Message-Id", :value=>"<CAFXNVWSqyaY6Qp7s6iTm9GwTVpCxgTxSCaa3UMU8rpNzZc+-Uw@mail.gmail.com>"}, {:name=>"In-Reply-To", :value=>"<CAA-2G7UbpEhf1G6-fF_ruSew7SRjsOpU+wPbmWufrknmbxQVZg@mail.gmail.com>"}, {:name=>"References", :value=>"<CAA-2G7UbpEhf1G6-fF_ruSew7SRjsOpU+wPbmWufrknmbxQVZg@mail.gmail.com>"}, {:name=>"Subject", :value=>"test reply message"}, {:name=>"Mime-Version", :value=>"1.0"}, {:name=>"Content-Type", :value=>"text/plain; charset=UTF-8"}, {:name=>"Content-Transfer-Encoding", :value=>"quoted-printable"}, {:name=>"From", :value=>"julie@juliedesk.com"}], :body=>{:size=>238, :data=>"dGVzdA0KDQpUaHUsIDE1IEphbiAyMDE1IDEwOjM5OjU5ICswMTAwIEp1bGllbiBIb2JlaWthIDxqdWxpZW5AanVsaWVkZXNrLmNvbT46DQoNCj5jb3Vjb3UNCj4NCj4NCj4qSnVsaWVuIEhvYmVpa2EgfCBDby1Gb3VuZGVyICYgQ0VPKkVtYWlsOiBqdWxpZW5AanVsaWVkZXNrLmNvbQ0KPlRlbDogKzMzIDYgNjMgMzMgMTcgNTUNCj4NCj4qSnVsaWUgRGVzayoNCj53d3cuanVsaWVkZXNrLmNvbQ0KPg0KPg0KPuGQpw0KPg=="}}, :sizeEstimate=>1089}
155
+ end
156
+
157
+ def test_unread_message(params = {})
158
+ {:id=>"14aecf9e31d945ba", :threadId=>"14aecf708ee65122", :labelIds=>["IMPORTANT", "CATEGORY_PERSONAL","UNREAD"], :snippet=>"test Thu, 15 Jan 2015 10:39:59 +0100 Julien Hobeika &lt;julien@juliedesk.com&gt;: &gt;coucou &gt;", :historyId=>"232799", :payload=>{:partId=>"", :mimeType=>"text/plain", :filename=>"", :headers=>[{:name=>"Received", :value=>"from 992877924458-i6nbjvo0fspv8hpmpss0i9aglneqrdpm.apps.googleusercontent.com named unknown by gmailapi.google.com with HTTPREST; Thu, 15 Jan 2015 01:43:27 -0800"}, {:name=>"Date", :value=>"Thu, 15 Jan 2015 01:43:27 -0800"}, {:name=>"To", :value=>"Julien Hobeika <julien@juliedesk.com>"}, {:name=>"Cc", :value=>"Julie Desk <julie@juliedesk.com>, Julien Hobeika <julien.hobeika@gmail.com>, Julien Hobeika <julien@juliedesk.com>, Nicolas Marlier <nicolas@wepopp.com>"}, {:name=>"Message-Id", :value=>"<CAFXNVWSqyaY6Qp7s6iTm9GwTVpCxgTxSCaa3UMU8rpNzZc+-Uw@mail.gmail.com>"}, {:name=>"In-Reply-To", :value=>"<CAA-2G7UbpEhf1G6-fF_ruSew7SRjsOpU+wPbmWufrknmbxQVZg@mail.gmail.com>"}, {:name=>"References", :value=>"<CAA-2G7UbpEhf1G6-fF_ruSew7SRjsOpU+wPbmWufrknmbxQVZg@mail.gmail.com>"}, {:name=>"Subject", :value=>"test reply message"}, {:name=>"Mime-Version", :value=>"1.0"}, {:name=>"Content-Type", :value=>"text/plain; charset=UTF-8"}, {:name=>"Content-Transfer-Encoding", :value=>"quoted-printable"}, {:name=>"From", :value=>"julie@juliedesk.com"}], :body=>{:size=>238, :data=>"dGVzdA0KDQpUaHUsIDE1IEphbiAyMDE1IDEwOjM5OjU5ICswMTAwIEp1bGllbiBIb2JlaWthIDxqdWxpZW5AanVsaWVkZXNrLmNvbT46DQoNCj5jb3Vjb3UNCj4NCj4NCj4qSnVsaWVuIEhvYmVpa2EgfCBDby1Gb3VuZGVyICYgQ0VPKkVtYWlsOiBqdWxpZW5AanVsaWVkZXNrLmNvbQ0KPlRlbDogKzMzIDYgNjMgMzMgMTcgNTUNCj4NCj4qSnVsaWUgRGVzayoNCj53d3cuanVsaWVkZXNrLmNvbQ0KPg0KPg0KPuGQpw0KPg=="}}, :sizeEstimate=>1089}
159
+ end
160
+
161
+ def test_sent_message(params = {})
162
+ {:id=>"14aecf9e31d945ba", :threadId=>"14aecf708ee65122", :labelIds=>["IMPORTANT", "CATEGORY_PERSONAL","SENT"], :snippet=>"test Thu, 15 Jan 2015 10:39:59 +0100 Julien Hobeika &lt;julien@juliedesk.com&gt;: &gt;coucou &gt;", :historyId=>"232799", :payload=>{:partId=>"", :mimeType=>"text/plain", :filename=>"", :headers=>[{:name=>"Received", :value=>"from 992877924458-i6nbjvo0fspv8hpmpss0i9aglneqrdpm.apps.googleusercontent.com named unknown by gmailapi.google.com with HTTPREST; Thu, 15 Jan 2015 01:43:27 -0800"}, {:name=>"Date", :value=>"Thu, 15 Jan 2015 01:43:27 -0800"}, {:name=>"To", :value=>"Julien Hobeika <julien@juliedesk.com>"}, {:name=>"Cc", :value=>"Julie Desk <julie@juliedesk.com>, Julien Hobeika <julien.hobeika@gmail.com>, Julien Hobeika <julien@juliedesk.com>, Nicolas Marlier <nicolas@wepopp.com>"}, {:name=>"Message-Id", :value=>"<CAFXNVWSqyaY6Qp7s6iTm9GwTVpCxgTxSCaa3UMU8rpNzZc+-Uw@mail.gmail.com>"}, {:name=>"In-Reply-To", :value=>"<CAA-2G7UbpEhf1G6-fF_ruSew7SRjsOpU+wPbmWufrknmbxQVZg@mail.gmail.com>"}, {:name=>"References", :value=>"<CAA-2G7UbpEhf1G6-fF_ruSew7SRjsOpU+wPbmWufrknmbxQVZg@mail.gmail.com>"}, {:name=>"Subject", :value=>"test reply message"}, {:name=>"Mime-Version", :value=>"1.0"}, {:name=>"Content-Type", :value=>"text/plain; charset=UTF-8"}, {:name=>"Content-Transfer-Encoding", :value=>"quoted-printable"}, {:name=>"From", :value=>"julie@juliedesk.com"}], :body=>{:size=>238, :data=>"dGVzdA0KDQpUaHUsIDE1IEphbiAyMDE1IDEwOjM5OjU5ICswMTAwIEp1bGllbiBIb2JlaWthIDxqdWxpZW5AanVsaWVkZXNrLmNvbT46DQoNCj5jb3Vjb3UNCj4NCj4NCj4qSnVsaWVuIEhvYmVpa2EgfCBDby1Gb3VuZGVyICYgQ0VPKkVtYWlsOiBqdWxpZW5AanVsaWVkZXNrLmNvbQ0KPlRlbDogKzMzIDYgNjMgMzMgMTcgNTUNCj4NCj4qSnVsaWUgRGVzayoNCj53d3cuanVsaWVkZXNrLmNvbQ0KPg0KPg0KPuGQpw0KPg=="}}, :sizeEstimate=>1089}
163
+ end
164
+
165
+ def test_inbox_message(params = {})
166
+ {:id=>"14aecf9e31d945ba", :threadId=>"14aecf708ee65122", :labelIds=>["IMPORTANT", "CATEGORY_PERSONAL","INBOX"], :snippet=>"test Thu, 15 Jan 2015 10:39:59 +0100 Julien Hobeika &lt;julien@juliedesk.com&gt;: &gt;coucou &gt;", :historyId=>"232799", :payload=>{:partId=>"", :mimeType=>"text/plain", :filename=>"", :headers=>[{:name=>"Received", :value=>"from 992877924458-i6nbjvo0fspv8hpmpss0i9aglneqrdpm.apps.googleusercontent.com named unknown by gmailapi.google.com with HTTPREST; Thu, 15 Jan 2015 01:43:27 -0800"}, {:name=>"Date", :value=>"Thu, 15 Jan 2015 01:43:27 -0800"}, {:name=>"To", :value=>"Julien Hobeika <julien@juliedesk.com>"}, {:name=>"Cc", :value=>"Julie Desk <julie@juliedesk.com>, Julien Hobeika <julien.hobeika@gmail.com>, Julien Hobeika <julien@juliedesk.com>, Nicolas Marlier <nicolas@wepopp.com>"}, {:name=>"Message-Id", :value=>"<CAFXNVWSqyaY6Qp7s6iTm9GwTVpCxgTxSCaa3UMU8rpNzZc+-Uw@mail.gmail.com>"}, {:name=>"In-Reply-To", :value=>"<CAA-2G7UbpEhf1G6-fF_ruSew7SRjsOpU+wPbmWufrknmbxQVZg@mail.gmail.com>"}, {:name=>"References", :value=>"<CAA-2G7UbpEhf1G6-fF_ruSew7SRjsOpU+wPbmWufrknmbxQVZg@mail.gmail.com>"}, {:name=>"Subject", :value=>"test reply message"}, {:name=>"Mime-Version", :value=>"1.0"}, {:name=>"Content-Type", :value=>"text/plain; charset=UTF-8"}, {:name=>"Content-Transfer-Encoding", :value=>"quoted-printable"}, {:name=>"From", :value=>"julie@juliedesk.com"}], :body=>{:size=>238, :data=>"dGVzdA0KDQpUaHUsIDE1IEphbiAyMDE1IDEwOjM5OjU5ICswMTAwIEp1bGllbiBIb2JlaWthIDxqdWxpZW5AanVsaWVkZXNrLmNvbT46DQoNCj5jb3Vjb3UNCj4NCj4NCj4qSnVsaWVuIEhvYmVpa2EgfCBDby1Gb3VuZGVyICYgQ0VPKkVtYWlsOiBqdWxpZW5AanVsaWVkZXNrLmNvbQ0KPlRlbDogKzMzIDYgNjMgMzMgMTcgNTUNCj4NCj4qSnVsaWUgRGVzayoNCj53d3cuanVsaWVkZXNrLmNvbQ0KPg0KPg0KPuGQpw0KPg=="}}, :sizeEstimate=>1089}
167
+ end
168
+
169
+ def test_message_list
170
+ {:messages=>[{:id=>"14ae456f2ff1e3e4", :threadId=>"14ae456f2ff1e3e4"}, {:id=>"14ae456891f20924", :threadId=>"14ae4438ed604170"}, {:id=>"14ae455204ed507e", :threadId=>"14ae4438ed604170"}, {:id=>"14ae45432aaf0c5a", :threadId=>"14ae4438ed604170"}, {:id=>"14ae4438ed604170", :threadId=>"14ae4438ed604170"}], :nextPageToken=>"05968490989102563512", :resultSizeEstimate=>20}
171
+ end
172
+
173
+
174
+ end
175
+ end
@@ -0,0 +1,33 @@
1
+ require 'gmail'
2
+ require 'test/unit'
3
+ require 'mocha/setup'
4
+ require 'stringio'
5
+ require 'shoulda'
6
+ require File.expand_path('../test_data', __FILE__)
7
+
8
+ # monkeypatch request methods
9
+ module Gmail
10
+ @client = nil
11
+
12
+ def self.connect
13
+
14
+ end
15
+ end
16
+
17
+ class Test::Unit::TestCase
18
+ include Gmail::TestData
19
+ include Mocha
20
+
21
+ setup do
22
+ @mock = mock
23
+ Gmail.client = @mock
24
+ Gmail.new(client_id: "foo", client_secret: "foo", refresh_token: "foo", application_name: "test", application_version: "test")
25
+ end
26
+
27
+ teardown do
28
+ Gmail.client = nil
29
+ Gmail.client_id = nil
30
+ Gmail.client_secret = nil
31
+ Gmail.refresh_token = nil
32
+ end
33
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gmail-api-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Julien Hobeika
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-13 00:00:00.000000000 Z
11
+ date: 2015-01-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mime
@@ -95,33 +95,47 @@ dependencies:
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
- name: rspec
98
+ name: test-unit
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: mocha
99
113
  requirement: !ruby/object:Gem::Requirement
100
114
  requirements:
101
115
  - - "~>"
102
116
  - !ruby/object:Gem::Version
103
- version: '2.0'
117
+ version: 0.13.2
104
118
  type: :development
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
107
121
  requirements:
108
122
  - - "~>"
109
123
  - !ruby/object:Gem::Version
110
- version: '2.0'
124
+ version: 0.13.2
111
125
  - !ruby/object:Gem::Dependency
112
- name: mocha
126
+ name: shoulda
113
127
  requirement: !ruby/object:Gem::Requirement
114
128
  requirements:
115
- - - ">="
129
+ - - "~>"
116
130
  - !ruby/object:Gem::Version
117
- version: '0.9'
131
+ version: 3.4.0
118
132
  type: :development
119
133
  prerelease: false
120
134
  version_requirements: !ruby/object:Gem::Requirement
121
135
  requirements:
122
- - - ">="
136
+ - - "~>"
123
137
  - !ruby/object:Gem::Version
124
- version: '0.9'
138
+ version: 3.4.0
125
139
  - !ruby/object:Gem::Dependency
126
140
  name: gem-release
127
141
  requirement: !ruby/object:Gem::Requirement
@@ -145,13 +159,14 @@ extensions: []
145
159
  extra_rdoc_files: []
146
160
  files:
147
161
  - ".gitignore"
148
- - ".rspec"
149
162
  - CHANGELOG.md
150
163
  - Gemfile
151
164
  - LICENSE
152
165
  - README.md
153
166
  - Rakefile
154
167
  - TODO.md
168
+ - account.yml
169
+ - account.yml.example
155
170
  - gmail.gemspec
156
171
  - lib/gmail.rb
157
172
  - lib/gmail/api_resource.rb
@@ -169,6 +184,15 @@ files:
169
184
  - lib/gmail/thread.rb
170
185
  - lib/gmail/util.rb
171
186
  - lib/gmail/version.rb
187
+ - test/gmail/api_resource_test.rb
188
+ - test/gmail/draft_test.rb
189
+ - test/gmail/gmail_object_test.rb
190
+ - test/gmail/label_test.rb
191
+ - test/gmail/message_test.rb
192
+ - test/gmail/thread_test.rb
193
+ - test/gmail/util_test.rb
194
+ - test/test_data.rb
195
+ - test/test_helper.rb
172
196
  homepage: http://github.com/jhk753/gmail-ruby-api
173
197
  licenses: []
174
198
  metadata: {}
@@ -193,4 +217,13 @@ signing_key:
193
217
  specification_version: 4
194
218
  summary: A Rubyesque interface to Gmail API (NO IMAP, NO SMTP), with all the tools
195
219
  you will need.
196
- test_files: []
220
+ test_files:
221
+ - test/gmail/api_resource_test.rb
222
+ - test/gmail/draft_test.rb
223
+ - test/gmail/gmail_object_test.rb
224
+ - test/gmail/label_test.rb
225
+ - test/gmail/message_test.rb
226
+ - test/gmail/thread_test.rb
227
+ - test/gmail/util_test.rb
228
+ - test/test_data.rb
229
+ - test/test_helper.rb
data/.rspec DELETED
@@ -1,2 +0,0 @@
1
- --colour
2
- --backtrace