mirror of
https://github.com/esp8266/Arduino.git
synced 2025-04-19 23:22:16 +03:00
use OrderedDict to force order of get params (#5414)
refactor to share request handler code in tests
This commit is contained in:
parent
0db6ec4ba8
commit
38b6a3c13e
@ -11,6 +11,7 @@ static ESP8266WebServer server(80);
|
|||||||
static uint32_t siteHits = 0;
|
static uint32_t siteHits = 0;
|
||||||
static String siteData = "";
|
static String siteData = "";
|
||||||
|
|
||||||
|
|
||||||
void setup()
|
void setup()
|
||||||
{
|
{
|
||||||
Serial.begin(115200);
|
Serial.begin(115200);
|
||||||
@ -26,21 +27,27 @@ void setup()
|
|||||||
BS_RUN(Serial);
|
BS_RUN(Serial);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void handle_request()
|
||||||
TEST_CASE("HTTP GET Parameters", "[HTTPServer]")
|
|
||||||
{
|
{
|
||||||
{
|
|
||||||
siteHits = 0;
|
|
||||||
server.on("/get", HTTP_GET, [](){
|
|
||||||
siteData = "";
|
|
||||||
for (uint8_t i=0; i<server.args(); i++){
|
for (uint8_t i=0; i<server.args(); i++){
|
||||||
|
// skip "plain" which is automatically added during arg parsing for post's
|
||||||
|
if (server.argName(i) == "plain")
|
||||||
|
continue;
|
||||||
if(i > 0)
|
if(i > 0)
|
||||||
siteData += "\n";
|
siteData += "\n";
|
||||||
siteData += server.argName(i) + " = " + server.arg(i);
|
siteData += server.argName(i) + " = " + server.arg(i);
|
||||||
}
|
}
|
||||||
siteHits++;
|
siteHits++;
|
||||||
server.send(200, "text/plain", siteData);
|
server.send(200, "text/plain", siteData);
|
||||||
});
|
}
|
||||||
|
|
||||||
|
|
||||||
|
TEST_CASE("HTTP GET Parameters", "[HTTPServer]")
|
||||||
|
{
|
||||||
|
{
|
||||||
|
siteHits = 0;
|
||||||
|
siteData = "";
|
||||||
|
server.on("/get", HTTP_GET, &handle_request);
|
||||||
uint32_t startTime = millis();
|
uint32_t startTime = millis();
|
||||||
while(siteHits == 0 && (millis() - startTime) < 10000)
|
while(siteHits == 0 && (millis() - startTime) < 10000)
|
||||||
server.handleClient();
|
server.handleClient();
|
||||||
@ -52,16 +59,8 @@ TEST_CASE("HTTP POST Parameters", "[HTTPServer]")
|
|||||||
{
|
{
|
||||||
{
|
{
|
||||||
siteHits = 0;
|
siteHits = 0;
|
||||||
server.on("/post", HTTP_POST, [](){
|
|
||||||
siteData = "";
|
siteData = "";
|
||||||
for (uint8_t i=0; i<server.args(); i++){
|
server.on("/post", HTTP_POST, &handle_request);
|
||||||
if(i > 0)
|
|
||||||
siteData += "\n";
|
|
||||||
siteData += server.argName(i) + " = " + server.arg(i);
|
|
||||||
}
|
|
||||||
siteHits++;
|
|
||||||
server.send(200, "text/plain", siteData);
|
|
||||||
});
|
|
||||||
uint32_t startTime = millis();
|
uint32_t startTime = millis();
|
||||||
while(siteHits == 0 && (millis() - startTime) < 10000)
|
while(siteHits == 0 && (millis() - startTime) < 10000)
|
||||||
server.handleClient();
|
server.handleClient();
|
||||||
@ -73,16 +72,8 @@ TEST_CASE("HTTP GET+POST Parameters", "[HTTPServer]")
|
|||||||
{
|
{
|
||||||
{
|
{
|
||||||
siteHits = 0;
|
siteHits = 0;
|
||||||
server.on("/get_and_post", HTTP_POST, [](){
|
|
||||||
siteData = "";
|
siteData = "";
|
||||||
for (uint8_t i=0; i<server.args(); i++){
|
server.on("/get_and_post", HTTP_POST, &handle_request);
|
||||||
if(i > 0)
|
|
||||||
siteData += "\n";
|
|
||||||
siteData += server.argName(i) + " = " + server.arg(i);
|
|
||||||
}
|
|
||||||
siteHits++;
|
|
||||||
server.send(200, "text/plain", siteData);
|
|
||||||
});
|
|
||||||
uint32_t startTime = millis();
|
uint32_t startTime = millis();
|
||||||
while(siteHits == 0 && (millis() - startTime) < 10000)
|
while(siteHits == 0 && (millis() - startTime) < 10000)
|
||||||
server.handleClient();
|
server.handleClient();
|
||||||
@ -94,15 +85,8 @@ TEST_CASE("HTTP Upload", "[HTTPServer]")
|
|||||||
{
|
{
|
||||||
{
|
{
|
||||||
siteHits = 0;
|
siteHits = 0;
|
||||||
server.on("/upload", HTTP_POST, [](){
|
siteData = "";
|
||||||
for (uint8_t i=0; i<server.args(); i++){
|
server.on("/upload", HTTP_POST, &handle_request, [](){
|
||||||
if(i > 0)
|
|
||||||
siteData += "\n";
|
|
||||||
siteData += server.argName(i) + " = " + server.arg(i);
|
|
||||||
}
|
|
||||||
siteHits++;
|
|
||||||
server.send(200, "text/plain", siteData);
|
|
||||||
}, [](){
|
|
||||||
HTTPUpload& upload = server.upload();
|
HTTPUpload& upload = server.upload();
|
||||||
if(upload.status == UPLOAD_FILE_START){
|
if(upload.status == UPLOAD_FILE_START){
|
||||||
siteData = upload.filename;
|
siteData = upload.filename;
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
from collections import OrderedDict
|
||||||
from mock_decorators import setup, teardown
|
from mock_decorators import setup, teardown
|
||||||
from threading import Thread
|
from threading import Thread
|
||||||
from poster.encode import MultipartParam
|
from poster.encode import MultipartParam
|
||||||
@ -24,7 +25,7 @@ def http_test(res, url, get=None, post=None):
|
|||||||
@setup('HTTP GET Parameters')
|
@setup('HTTP GET Parameters')
|
||||||
def setup_http_get_params(e):
|
def setup_http_get_params(e):
|
||||||
def testRun():
|
def testRun():
|
||||||
return http_test('var1 = val with spaces\nva=r+ = so&me%', 'http://etd.local/get', {'var1' : 'val with spaces', 'va=r+' : 'so&me%'})
|
return http_test('var1 = val with spaces\nva=r+ = so&me%', 'http://etd.local/get', OrderedDict([('var1', 'val with spaces'), ('va=r+', 'so&me%')]))
|
||||||
Thread(target=testRun).start()
|
Thread(target=testRun).start()
|
||||||
|
|
||||||
@teardown('HTTP GET Parameters')
|
@teardown('HTTP GET Parameters')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user