increased chunk size
Fork of MTS-Socket by
Test/TestHTTPS.h@36:b6e47b4cdb6d, 2015-03-11 (annotated)
- Committer:
- Vanger
- Date:
- Wed Mar 11 19:07:13 2015 +0000
- Revision:
- 36:b6e47b4cdb6d
- Parent:
- 35:c85bea9cb713
Fixed basic-auth test to work properly and to allow easy manipulation for testing different names and passwords.;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Vanger | 35:c85bea9cb713 | 1 | #ifndef TESTHTTPS_H |
Vanger | 35:c85bea9cb713 | 2 | #define TESTHTTPS_H |
Vanger | 35:c85bea9cb713 | 3 | |
Vanger | 35:c85bea9cb713 | 4 | #include "mtsas.h" |
Vanger | 35:c85bea9cb713 | 5 | #include <string> |
Vanger | 35:c85bea9cb713 | 6 | #include "httpbinCert.h" |
Vanger | 35:c85bea9cb713 | 7 | |
Vanger | 35:c85bea9cb713 | 8 | using namespace mts; |
Vanger | 35:c85bea9cb713 | 9 | |
Vanger | 35:c85bea9cb713 | 10 | class TestHTTPS : public TestCollection |
Vanger | 35:c85bea9cb713 | 11 | { |
Vanger | 35:c85bea9cb713 | 12 | public: |
Vanger | 35:c85bea9cb713 | 13 | TestHTTPS(); |
Vanger | 35:c85bea9cb713 | 14 | virtual void run(); |
Vanger | 35:c85bea9cb713 | 15 | |
Vanger | 35:c85bea9cb713 | 16 | private: |
Vanger | 35:c85bea9cb713 | 17 | MTSSerialFlowControl* io; |
Vanger | 35:c85bea9cb713 | 18 | Cellular* radio; |
Vanger | 35:c85bea9cb713 | 19 | HTTPClient* http; |
Vanger | 35:c85bea9cb713 | 20 | char rbuf[1024]; |
Vanger | 35:c85bea9cb713 | 21 | HTTPMap* send; |
Vanger | 35:c85bea9cb713 | 22 | HTTPText* receive; |
Vanger | 35:c85bea9cb713 | 23 | }; |
Vanger | 35:c85bea9cb713 | 24 | |
Vanger | 35:c85bea9cb713 | 25 | TestHTTPS::TestHTTPS() : TestCollection("TestHTTPS") {} |
Vanger | 35:c85bea9cb713 | 26 | |
Vanger | 35:c85bea9cb713 | 27 | void TestHTTPS::run() { |
Vanger | 35:c85bea9cb713 | 28 | |
Vanger | 35:c85bea9cb713 | 29 | |
Vanger | 35:c85bea9cb713 | 30 | string url; |
Vanger | 35:c85bea9cb713 | 31 | string secure_url = "https://httpbin.org:443"; |
Vanger | 35:c85bea9cb713 | 32 | string url_get = "/get"; |
Vanger | 35:c85bea9cb713 | 33 | string url_put = "/put"; |
Vanger | 35:c85bea9cb713 | 34 | string url_post = "/post"; |
Vanger | 35:c85bea9cb713 | 35 | string url_del = "/delete"; |
Vanger | 35:c85bea9cb713 | 36 | string url_stream = "/stream/20"; |
Vanger | 36:b6e47b4cdb6d | 37 | string url_auth = "/basic-auth"; |
Vanger | 35:c85bea9cb713 | 38 | |
Vanger | 35:c85bea9cb713 | 39 | MTSLog::setLogLevel(MTSLog::TRACE_LEVEL); |
Vanger | 35:c85bea9cb713 | 40 | |
Vanger | 35:c85bea9cb713 | 41 | Test::start("Setup"); |
Vanger | 35:c85bea9cb713 | 42 | io = new MTSSerialFlowControl(D8, D2, D3, D6); |
Vanger | 35:c85bea9cb713 | 43 | io->baud(115200); |
Vanger | 35:c85bea9cb713 | 44 | radio = CellularFactory::create(io); |
Vanger | 35:c85bea9cb713 | 45 | if (! radio) { |
Vanger | 35:c85bea9cb713 | 46 | Test::assertTrue(false); |
Vanger | 35:c85bea9cb713 | 47 | } |
Vanger | 35:c85bea9cb713 | 48 | radio->configureSignals(D4, D7, RESET); |
Vanger | 35:c85bea9cb713 | 49 | Transport::setTransport(radio); |
Vanger | 35:c85bea9cb713 | 50 | |
Vanger | 35:c85bea9cb713 | 51 | http = new HTTPClient(); |
Vanger | 35:c85bea9cb713 | 52 | send = new HTTPMap(); |
Vanger | 35:c85bea9cb713 | 53 | receive = new HTTPText(rbuf); |
Vanger | 35:c85bea9cb713 | 54 | |
Vanger | 35:c85bea9cb713 | 55 | for (int i = 0; i < 10; i++) { |
Vanger | 35:c85bea9cb713 | 56 | if (i >= 10) { |
Vanger | 35:c85bea9cb713 | 57 | Test::assertTrue(false); |
Vanger | 35:c85bea9cb713 | 58 | } |
Vanger | 35:c85bea9cb713 | 59 | if (radio->setApn(APN) == MTS_SUCCESS) { |
Vanger | 35:c85bea9cb713 | 60 | break; |
Vanger | 35:c85bea9cb713 | 61 | } else { |
Vanger | 35:c85bea9cb713 | 62 | wait(1); |
Vanger | 35:c85bea9cb713 | 63 | } |
Vanger | 35:c85bea9cb713 | 64 | } |
Vanger | 35:c85bea9cb713 | 65 | for (int i = 0; i < 3; i++) { |
Vanger | 35:c85bea9cb713 | 66 | if (i >= 3) { |
Vanger | 35:c85bea9cb713 | 67 | Test::assertTrue(false); |
Vanger | 35:c85bea9cb713 | 68 | } |
Vanger | 35:c85bea9cb713 | 69 | if (radio->connect()) { |
Vanger | 35:c85bea9cb713 | 70 | break; |
Vanger | 35:c85bea9cb713 | 71 | } else { |
Vanger | 35:c85bea9cb713 | 72 | wait(1); |
Vanger | 35:c85bea9cb713 | 73 | } |
Vanger | 35:c85bea9cb713 | 74 | } |
Vanger | 35:c85bea9cb713 | 75 | |
Vanger | 35:c85bea9cb713 | 76 | for (int i = 0; i < 5; i++) { |
Vanger | 35:c85bea9cb713 | 77 | if (i >= 5) { |
Vanger | 35:c85bea9cb713 | 78 | Test::assertTrue(false); |
Vanger | 35:c85bea9cb713 | 79 | } |
Vanger | 35:c85bea9cb713 | 80 | if (radio->ping()) { |
Vanger | 35:c85bea9cb713 | 81 | break; |
Vanger | 35:c85bea9cb713 | 82 | } else { |
Vanger | 35:c85bea9cb713 | 83 | wait(1); |
Vanger | 35:c85bea9cb713 | 84 | } |
Vanger | 35:c85bea9cb713 | 85 | } |
Vanger | 35:c85bea9cb713 | 86 | |
Vanger | 36:b6e47b4cdb6d | 87 | if (http->addRootCACertificate(CERTIFICATE) != HTTP_OK) { |
Vanger | 35:c85bea9cb713 | 88 | Test::assertTrue(false); |
Vanger | 35:c85bea9cb713 | 89 | } |
Vanger | 36:b6e47b4cdb6d | 90 | http->setPeerVerification(VERIFY_PEER); |
Vanger | 35:c85bea9cb713 | 91 | |
Vanger | 35:c85bea9cb713 | 92 | Test::end(); |
Vanger | 35:c85bea9cb713 | 93 | |
Vanger | 35:c85bea9cb713 | 94 | url = secure_url + url_get; |
Vanger | 35:c85bea9cb713 | 95 | Test::start("HTTPS GET"); |
Vanger | 35:c85bea9cb713 | 96 | Test::assertTrue(http->get(url.c_str(), receive, 10000) == HTTP_OK); |
Vanger | 35:c85bea9cb713 | 97 | Test::end(); |
Vanger | 35:c85bea9cb713 | 98 | |
Vanger | 35:c85bea9cb713 | 99 | url = secure_url + url_put; |
Vanger | 35:c85bea9cb713 | 100 | Test::start("HTTPS PUT"); |
Vanger | 35:c85bea9cb713 | 101 | send->put("testing", "put"); |
Vanger | 35:c85bea9cb713 | 102 | Test::assertTrue(http->put(url.c_str(), *send, receive, 10000) == HTTP_OK); |
Vanger | 36:b6e47b4cdb6d | 103 | send->clear(); |
Vanger | 35:c85bea9cb713 | 104 | Test::end(); |
Vanger | 35:c85bea9cb713 | 105 | |
Vanger | 35:c85bea9cb713 | 106 | url = secure_url + url_post; |
Vanger | 35:c85bea9cb713 | 107 | Test::start("HTTPS POST"); |
Vanger | 35:c85bea9cb713 | 108 | send->put("testing", "put"); |
Vanger | 35:c85bea9cb713 | 109 | Test::assertTrue(http->post(url.c_str(), *send, receive, 10000) == HTTP_OK); |
Vanger | 36:b6e47b4cdb6d | 110 | send->clear(); |
Vanger | 35:c85bea9cb713 | 111 | Test::end(); |
Vanger | 35:c85bea9cb713 | 112 | |
Vanger | 35:c85bea9cb713 | 113 | url = secure_url + url_del; |
Vanger | 35:c85bea9cb713 | 114 | Test::start("HTTPS DELETE"); |
Vanger | 35:c85bea9cb713 | 115 | Test::assertTrue(http->del(url.c_str(), receive, 10000) == HTTP_OK); |
Vanger | 35:c85bea9cb713 | 116 | Test::end(); |
Vanger | 35:c85bea9cb713 | 117 | |
Vanger | 35:c85bea9cb713 | 118 | url = secure_url + url_stream; |
Vanger | 35:c85bea9cb713 | 119 | char bigbuf[8 * 1024]; |
Vanger | 35:c85bea9cb713 | 120 | HTTPText big(bigbuf); |
Vanger | 35:c85bea9cb713 | 121 | Test::start("HTTPS big GET"); |
Vanger | 35:c85bea9cb713 | 122 | Test::assertTrue(http->get(url.c_str(), &big, 10000) == HTTP_OK); |
Vanger | 35:c85bea9cb713 | 123 | Test::end(); |
Vanger | 35:c85bea9cb713 | 124 | |
Vanger | 36:b6e47b4cdb6d | 125 | string url_usr_pw = "/Bob/123"; |
Vanger | 36:b6e47b4cdb6d | 126 | url = secure_url + url_auth + url_usr_pw; |
Vanger | 36:b6e47b4cdb6d | 127 | const char user[] = "Bob",pw[] = "123"; |
Vanger | 36:b6e47b4cdb6d | 128 | Test::start("HTTPS AUTH GET"); |
Vanger | 35:c85bea9cb713 | 129 | Test::assertTrue(http->basicAuth(user,pw) == HTTP_OK); |
Vanger | 36:b6e47b4cdb6d | 130 | Test::assertTrue(http->get(url.c_str(), receive, 30000) == HTTP_OK); |
Vanger | 36:b6e47b4cdb6d | 131 | Test::assertTrue(http->basicAuth(NULL,NULL) == HTTP_OK); |
Vanger | 35:c85bea9cb713 | 132 | Test::end(); |
Vanger | 35:c85bea9cb713 | 133 | |
Vanger | 35:c85bea9cb713 | 134 | radio->disconnect(); |
Vanger | 35:c85bea9cb713 | 135 | } |
Vanger | 35:c85bea9cb713 | 136 | |
Vanger | 35:c85bea9cb713 | 137 | #endif |