reverted HTTPCLient debug back to defaulted off

Dependencies:   HTTPClient-SSL

Fork of MTS-Socket by Keith Ruenheck

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers TestHTTPS.h Source File

TestHTTPS.h

00001 #ifndef TESTHTTPS_H
00002 #define TESTHTTPS_H
00003 
00004 #include "mtsas.h"
00005 #include <string>
00006 #include "httpbinCert.h"
00007 
00008 using namespace mts;
00009 
00010 class TestHTTPS : public TestCollection
00011 {
00012 public:
00013     TestHTTPS();
00014     virtual void run();
00015     
00016 private:
00017     MTSSerialFlowControl* io;
00018     Cellular* radio;
00019     HTTPClient* http;
00020     char rbuf[1024];
00021     HTTPMap* send;
00022     HTTPText* receive;
00023 };
00024 
00025 TestHTTPS::TestHTTPS() : TestCollection("TestHTTPS") {}
00026 
00027 void TestHTTPS::run() {
00028     
00029     
00030     string url;
00031     string secure_url = "https://httpbin.org:443";
00032     string url_get = "/get";
00033     string url_put = "/put";
00034     string url_post = "/post";
00035     string url_del = "/delete";
00036     string url_stream = "/stream/20";
00037     string url_auth = "/basic-auth";
00038     
00039     MTSLog::setLogLevel(MTSLog::TRACE_LEVEL);
00040     
00041     Test::start("Setup");
00042     io = new MTSSerialFlowControl(D8, D2, D3, D6);
00043     io->baud(115200);
00044     radio = CellularFactory::create(io);
00045     if (! radio) {
00046         Test::assertTrue(false);
00047     }
00048     radio->configureSignals(D4, D7, RESET);
00049     Transport::setTransport(radio);
00050     
00051     http = new HTTPClient();
00052     send = new HTTPMap();
00053     receive = new HTTPText(rbuf);
00054     
00055     for (int i = 0; i < 10; i++) {
00056         if (i >= 10) {
00057             Test::assertTrue(false);
00058         }
00059         if (radio->setApn(APN) == MTS_SUCCESS) {
00060             break;
00061         } else {
00062             wait(1);
00063         }
00064     }
00065     for (int i = 0; i < 3; i++) {
00066         if (i >= 3) {
00067             Test::assertTrue(false);
00068         }
00069         if (radio->connect()) {
00070             break;
00071         } else {
00072             wait(1);
00073         }
00074     }
00075     
00076     for (int i = 0; i < 5; i++) {
00077         if (i >= 5) {
00078             Test::assertTrue(false);
00079         }
00080         if (radio->ping()) {
00081             break;
00082         } else {
00083             wait(1);
00084         }
00085     }
00086     
00087     if (http->addRootCACertificate(CERTIFICATE) != HTTP_OK) {
00088         Test::assertTrue(false);
00089     }
00090     http->setPeerVerification(VERIFY_PEER);
00091     
00092     Test::end();
00093     
00094     url = secure_url + url_get;
00095     Test::start("HTTPS GET");
00096     Test::assertTrue(http->get(url.c_str(), receive, 10000) == HTTP_OK);
00097     Test::end();
00098     
00099     url = secure_url + url_put;
00100     Test::start("HTTPS PUT");
00101     send->put("testing", "put");
00102     Test::assertTrue(http->put(url.c_str(), *send, receive, 10000) == HTTP_OK);
00103     send->clear();
00104     Test::end();
00105     
00106     url = secure_url + url_post;
00107     Test::start("HTTPS POST");
00108     send->put("testing", "put");
00109     Test::assertTrue(http->post(url.c_str(), *send, receive, 10000) == HTTP_OK);
00110     send->clear();
00111     Test::end();
00112     
00113     url = secure_url + url_del;
00114     Test::start("HTTPS DELETE");
00115     Test::assertTrue(http->del(url.c_str(), receive, 10000) == HTTP_OK);
00116     Test::end();
00117     
00118     url = secure_url + url_stream;
00119     char bigbuf[8 * 1024];
00120     HTTPText big(bigbuf);
00121     Test::start("HTTPS big GET");
00122     Test::assertTrue(http->get(url.c_str(), &big, 10000) == HTTP_OK);
00123     Test::end();
00124     
00125     string url_usr_pw = "/Bob/123";
00126     url = secure_url + url_auth + url_usr_pw;
00127     const char user[] = "Bob",pw[] = "123";
00128     Test::start("HTTPS AUTH GET");
00129     Test::assertTrue(http->basicAuth(user,pw) == HTTP_OK);
00130     Test::assertTrue(http->get(url.c_str(), receive, 30000) == HTTP_OK);
00131     Test::assertTrue(http->basicAuth(NULL,NULL) == HTTP_OK);
00132     Test::end();
00133     
00134     radio->disconnect();
00135 }
00136 
00137 #endif