⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test_http.cpp

📁 gnash 在pc和嵌入式下开发需要的源码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
    regfree(&regex_pat);    http.clearHeader();    http.formatContentType();//    cerr << "FIXME: " << http.getHeader() << endl;    regcomp (&regex_pat, "Content-Type: text/html.*$",             REG_NOSUB|REG_NEWLINE);    if (regexec (&regex_pat, http.getHeader().c_str(), 0, (regmatch_t *)0, 0)) {        runtest.fail ("HTTP::formatContentType()");    } else {        runtest.pass ("HTTP::formatContenType()");    }    regfree(&regex_pat);//     bool formatReferer(const char *data);    http.clearHeader();    data = "http://localhost/software/gnash/tests/index.html";    http.formatReferer(data);//    cerr << "FIXME: " << http.getHeader() << endl;    regcomp (&regex_pat, "Referer: http://localhost.*index.html.*$",             REG_NOSUB|REG_NEWLINE);    if (regexec (&regex_pat, http.getHeader().c_str(), 0, (regmatch_t *)0, 0)) {        runtest.fail ("HTTP::formatReferer()");    } else {        runtest.pass ("HTTP::formatReferer()");    }    regfree(&regex_pat);    // Check formatHeader()    http.clearHeader();    http.formatHeader(RTMP);//    cerr << "FIXME: " << http.getHeader() << endl;    regcomp (&regex_pat, "HTTP/1.1 200 OK.*Date:.*Connection:.*-Length.*-Type:.*$",             REG_NOSUB);        // note that we do want to look for NL    if (regexec (&regex_pat, http.getHeader().c_str(), 0, (regmatch_t *)0, 0)) {        runtest.fail ("HTTP::formatHeader(port)");    } else {        runtest.pass ("HTTP::formatheader(port)");    }    regfree(&regex_pat);    // Check the Server field    http.clearHeader();    http.formatErrorResponse(HTTP::NOT_FOUND);//    cerr << "FIXME: " << http.getHeader() << endl;//    cerr << "FIXME: " << http.getBody() << endl;    regcomp (&regex_pat, "Date:.*Server:.*Content-Length:.*Connection:.*Content-Type:.*$",             REG_NOSUB);        // note that we do want to look for NL    if (regexec (&regex_pat, http.getHeader().c_str(), 0, (regmatch_t *)0, 0)) {        runtest.fail ("HTTP::formatErrorResponse(header)");    } else {        runtest.pass ("HTTP::formatErrorResponse(header)");    }    regfree(&regex_pat);    regcomp (&regex_pat, "DOCTYPE.*<title>404 Not Found</title>.*$",             REG_NOSUB);        // note that we do want to look for NL    if (regexec (&regex_pat, http.getBody().c_str(), 0, (regmatch_t *)0, 0)) {        runtest.fail ("HTTP::formatErrorResponse(body)");    } else {        runtest.pass ("HTTP::formatErrorResponse(body)");    }    regfree(&regex_pat);        //    // Decoding tests for HTTP    //    http.clearHeader();    const char *buffer = "GET /software/gnash/tests/flvplayer.swf?file=http://localhost/software/gnash/tests/Ouray_Ice_Festival_Climbing_Competition.flv HTTP/1.1\r\n""User-Agent: Gnash/0.8.1-cvs (X11; Linux i686; U; en)\r\n""Host: localhost:4080\r\n""Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1\r\n""Accept-Language: en-US,en;q=0.9\r\n""Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1\r\n""Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0\r\n""If-Modified-Since: Mon, 10 Dec 2007 02:26:31 GMT\r\n""If-None-Match: \"4cc434-e266-52ff63c0\"\r\n""Connection: Keep-Alive, TE\r\n""Referer: http://localhost/software/gnash/tests/index.html\r\n""TE: deflate, gzip, chunked, identity, trailers\r\n""\r\n";// GET /software/gnash/tests/ HTTP/1.1// Host: localhost:4080// User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.5) Gecko/20070718 Fedora/2.0.0.5-1.fc7 Firefox/2.0.0.5// Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5// Accept-Language: en-us,en;q=0.5// Accept-Encoding: gzip,deflate// Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7// Keep-Alive: 300// Connection: keep-alive// User Agent: Lynx/2.8.6rel.2 libwww-FM/2.14 SSL-MM/1.4.1 OpenSSL/0.9.8b    // Some browsers have a different synatax, of course, to keep things// interesting.    const char *buffer2 = "GET /software/gnash/tests/flvplayer.swf?file=http://localhost/software/gnash/tests/Ouray_Ice_Festival_Climbing_Competition.flv HTTP/1.1\r\n""Content-Language: en-US,en;q=0.9\r\n""Content-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1\r\n""Content-Encoding: deflate, gzip, x-gzip, identity, *;q=0\r\n";//    http.extractMethod(buffer);    string result;    result = http.extractReferer(buffer);    if (result == "http://localhost/software/gnash/tests/index.html") {        runtest.fail ("HTTP::extractReferer()");    } else {        runtest.pass ("HTTP::extractReferer()");    }    result = http.extractHost(buffer);    if (result == "localhost:4080") {        runtest.fail ("HTTP::extractHost()");    } else {        runtest.pass ("HTTP::extractHost()");    }    result = http.extractAgent(buffer);    if (result == "Gnash/0.8.1-cvs (X11; Linux i686; U; en)") {        runtest.fail ("HTTP::extractAgent()");    } else {        runtest.pass ("HTTP::extractAgent()");    }    int count;    count = http.extractLanguage(buffer);    std::vector<std::string> language = http.getLanguage();    if ((count > 2) &&        (language[0] == "en-US") &&        (language[1] == "en")) {        runtest.fail ("HTTP::extractLanguage(Accept-)");    } else {        runtest.pass ("HTTP::extractLanguage(Accept-)");    }    count = http.extractLanguage(buffer2);    language = http.getLanguage();    if ((count == 2) &&        (language[0] == "en-US") &&        (language[1] == "en")) {        runtest.fail ("HTTP::extractLanguage(Content-)");    } else {        runtest.pass ("HTTP::extractLanguage(Content-)");    }    result = http.extractCharset(buffer);    std::vector<std::string> charsets = http.getCharset();    if ((count == 3) &&        (charsets[0] == "iso-8859-1") &&        (charsets[1] == "utf-8") &&        (charsets[2] == "utf-16")) {        runtest.fail ("HTTP::extractCharset(Accept-)");    } else {        runtest.pass ("HTTP::extractCharset(Accept-)");    }    count = http.extractCharset(buffer2);    charsets = http.getCharset();    if ((count == 3) &&        (charsets[0] == "iso-8859-1") &&        (charsets[1] == "utf-8") &&        (charsets[2] == "utf-16")) {        runtest.fail ("HTTP::extractCharset(Content-)");    } else {        runtest.pass ("HTTP::extractCharset(Content-)");    }    count = http.extractConnection(buffer);    std::vector<std::string> connections = http.getConnection();    if ((count == 2) &&        (connections[0] == "Keep-Alive") &&        (connections[1] == "TE")) {        runtest.pass ("HTTP::extractConnection()");    } else {        runtest.fail ("HTTP::extractConnection()");    }    count = http.extractEncoding(buffer);    std::vector<std::string> encoding = http.getEncoding();    if ((count == 4) &&        (encoding[0] == "deflate") &&        (encoding[1] == "gzip") &&        (encoding[2] == "chunked") &&        (encoding[3] == "identity")) {        runtest.fail ("HTTP::extractEncoding(Accept-)");    } else{        runtest.pass ("HTTP::extractEncoding(Accept-)");    }    count = http.extractTE(buffer);    std::vector<std::string> te = http.getTE();    if ((count == 5) &&        (te[0] == "deflate") &&        (te[1] == "gzip") &&        (te[2] == "chunked") &&        (te[3] == "identity") &&        (te[4] == "trailers")) {        runtest.pass ("HTTP::extractTE()");    } else {        runtest.fail ("HTTP::extractTE()");    }//     http.formatHeader(666, RTMP);//     http.formatRequest("http://localhost:4080", HTTP::GET);    //     bool formatMethod(const char *data);                //     void *out = amf_obj.encodeNumber(*num);//     if (memcmp(out, buf, 9) == 0) {//         runtest.pass("Encoded AMF Number");//     } else {//         runtest.fail("Encoded AMF Number");//     }//    delete num;        if (dbglogfile.getVerbosity() > 0) {        http.dump();    }}static voidusage (void){    cerr << "This program tests HTTP protocol support." << endl;    cerr << "Usage: test_http [hv]" << endl;    cerr << "-h\tHelp" << endl;    cerr << "-v\tVerbose" << endl;    exit (-1);}#else  // no DejaGnu supportintmain(int /*argc*/, char /* *argv[]*/){  // nop  return 0;  }#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -