PuzzleSDK
HttpClientClearRequestsTest类 参考

#include <HttpClientTest.h>

+ 类 HttpClientClearRequestsTest 继承关系图:
+ HttpClientClearRequestsTest 的协作图:

Public 成员函数

 CREATE_FUNC (HttpClientClearRequestsTest)
 
 HttpClientClearRequestsTest ()
 
virtual ~HttpClientClearRequestsTest ()
 
void onMenuCancelAllClicked (cocos2d::Ref *sender)
 
void onMenuCancelSomeClicked (cocos2d::Ref *sender)
 
void onHttpRequestCompleted (cocos2d::network::HttpClient *sender, cocos2d::network::HttpResponse *response)
 
virtual std::string title () const override
 
- Public 成员函数 继承自 TestCase
 TestCase ()
 
 ~TestCase ()
 
virtual std::string subtitle () const
 
virtual Type getTestType () const
 
virtual float getDuration () const
 
virtual std::string getExpectedOutput () const
 
virtual std::string getActualOutput () const
 
virtual void restartTestCallback (cocos2d::Ref *sender)
 
virtual void nextTestCallback (cocos2d::Ref *sender)
 
virtual void priorTestCallback (cocos2d::Ref *sender)
 
virtual void onBackCallback (cocos2d::Ref *sender)
 
void setTestSuite (TestSuite *testSuite)
 
TestSuitegetTestSuite () const
 
float getRunTime () const
 
void setTestCaseName (const std::string &name)
 
std::string getTestCaseName () const
 
const cocos2d::Label * getSubtitleLable () const
 
const cocos2d::MenuItemImage * getRestartTestItem () const
 
virtual void onEnter () override
 

Private 属性

int _totalExpectedRequests
 
int _totalProcessedRequests
 
cocos2d::Label * _labelTrakingData
 
cocos2d::Label * _labelStatusCode
 

额外继承的成员函数

- Public 类型 继承自 TestCase
enum class  Type { ROBUSTNESS , UNIT , GRAPHICAL_STATIC , MANUAL }
 
- Public 属性 继承自 TestCase
CC_CONSTRUCTOR_ACCESS __pad0__: virtual bool init() override
 
- Protected 属性 继承自 TestCase
cocos2d::MenuItemImage * _priorTestItem
 
cocos2d::MenuItemImage * _restartTestItem
 
cocos2d::MenuItemImage * _nextTestItem
 
cocos2d::Label * _titleLabel
 
cocos2d::Label * _subtitleLabel
 

详细描述

在文件 HttpClientTest.h59 行定义.

构造及析构函数说明

◆ HttpClientClearRequestsTest()

HttpClientClearRequestsTest::HttpClientClearRequestsTest ( )

在文件 HttpClientTest.cpp406 行定义.

407: _labelStatusCode(nullptr)
408{
409 auto winSize = Director::getInstance()->getWinSize();
410
411 const int MARGIN = 40;
412 const int SPACE = 35;
413
414 const int CENTER = winSize.width / 2;
415
416 auto menuRequest = Menu::create();
417 menuRequest->setPosition(Vec2::ZERO);
418 addChild(menuRequest);
419
420 // Get
421 auto labelGet = Label::createWithTTF("Test Clear all Get", "fonts/arial.ttf", 22);
422 auto itemGet = MenuItemLabel::create(labelGet, CC_CALLBACK_1(HttpClientClearRequestsTest::onMenuCancelAllClicked, this));
423 itemGet->setPosition(CENTER, winSize.height - MARGIN - SPACE);
424 menuRequest->addChild(itemGet);
425
426 // Post
427 auto labelPost = Label::createWithTTF("Test Clear but only with the tag DELETE", "fonts/arial.ttf", 22);
428 auto itemPost = MenuItemLabel::create(labelPost, CC_CALLBACK_1(HttpClientClearRequestsTest::onMenuCancelSomeClicked, this));
429 itemPost->setPosition(CENTER, winSize.height - MARGIN - 2 * SPACE);
430 menuRequest->addChild(itemPost);
431
432 // Response Code Label
433 _labelStatusCode = Label::createWithTTF("HTTP Status Code", "fonts/arial.ttf", 18);
434 _labelStatusCode->setPosition(winSize.width / 2, winSize.height - MARGIN - 6 * SPACE);
435 addChild(_labelStatusCode);
436
437 // Tracking Data Label
438 _labelTrakingData = Label::createWithTTF("Got 0 of 0 expected http requests", "fonts/arial.ttf", 16);
439 _labelTrakingData->setPosition(CENTER, winSize.height - MARGIN - 5 * SPACE);
440 addChild(_labelTrakingData);
441
444}
void onMenuCancelSomeClicked(cocos2d::Ref *sender)
cocos2d::Label * _labelTrakingData
void onMenuCancelAllClicked(cocos2d::Ref *sender)
cocos2d::Label * _labelStatusCode

引用了 _labelStatusCode, _labelTrakingData, _totalExpectedRequests, _totalProcessedRequests, onMenuCancelAllClicked() , 以及 onMenuCancelSomeClicked().

+ 函数调用图:

◆ ~HttpClientClearRequestsTest()

HttpClientClearRequestsTest::~HttpClientClearRequestsTest ( )
virtual

在文件 HttpClientTest.cpp446 行定义.

447{
448 HttpClient::destroyInstance();
449}

成员函数说明

◆ CREATE_FUNC()

HttpClientClearRequestsTest::CREATE_FUNC ( HttpClientClearRequestsTest  )

◆ onHttpRequestCompleted()

void HttpClientClearRequestsTest::onHttpRequestCompleted ( cocos2d::network::HttpClient *  sender,
cocos2d::network::HttpResponse *  response 
)

在文件 HttpClientTest.cpp519 行定义.

520{
521 if (!response)
522 {
523 return;
524 }
525
526 // You can get original request type from: response->request->reqType
527 if (0 != strlen(response->getHttpRequest()->getTag()))
528 {
529 log("%s completed", response->getHttpRequest()->getTag());
530 }
531
532 long statusCode = response->getResponseCode();
533 char statusString[64] = {};
534 sprintf(statusString, "HTTP Status Code: %ld, tag = %s", statusCode, response->getHttpRequest()->getTag());
535 _labelStatusCode->setString(statusString);
536 log("response code: %ld", statusCode);
537
539 sprintf(statusString, "Got %d of %d expected http requests", _totalProcessedRequests, _totalExpectedRequests);
540 _labelTrakingData->setString(statusString);
541
542 if (!response->isSucceed())
543 {
544 log("response failed");
545 log("error buffer: %s", response->getErrorBuffer());
546 }
547}

引用了 _labelStatusCode, _labelTrakingData, _totalExpectedRequests , 以及 _totalProcessedRequests.

被这些函数引用 onMenuCancelAllClicked() , 以及 onMenuCancelSomeClicked().

+ 这是这个函数的调用关系图:

◆ onMenuCancelAllClicked()

void HttpClientClearRequestsTest::onMenuCancelAllClicked ( cocos2d::Ref *  sender)

在文件 HttpClientTest.cpp451 行定义.

452{
453 for (int i=0; i < 10; i++)
454 {
455 HttpRequest* request = new (std::nothrow) HttpRequest();
456 std::stringstream url;
457 url << "https://cocos2d-x.org/images/logo.png?id=" << std::to_string(i);
458 request->setUrl(url.str());
459 request->setRequestType(HttpRequest::Type::GET);
460 request->setResponseCallback(CC_CALLBACK_2(HttpClientClearRequestsTest::onHttpRequestCompleted, this));
461
462 url.str("");
463 url << "TEST_" << std::to_string(i);
464 request->setTag(url.str());
465 HttpClient::getInstance()->send(request);
466 request->release();
467 }
468
471
472 HttpClient::getInstance()->setClearRequestPredicate(nullptr);
473 HttpClient::getInstance()->setClearResponsePredicate(nullptr);
474 HttpClient::getInstance()->clearResponseAndRequestQueue();
475
476 // waiting
477 _labelStatusCode->setString("waiting...");
478}
void onHttpRequestCompleted(cocos2d::network::HttpClient *sender, cocos2d::network::HttpResponse *response)

引用了 _labelStatusCode, _totalExpectedRequests, _totalProcessedRequests , 以及 onHttpRequestCompleted().

被这些函数引用 HttpClientClearRequestsTest().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ onMenuCancelSomeClicked()

void HttpClientClearRequestsTest::onMenuCancelSomeClicked ( cocos2d::Ref *  sender)

在文件 HttpClientTest.cpp480 行定义.

481{
482 // test 1
483 for (int i=0; i < 10; i++)
484 {
485 HttpRequest* request = new (std::nothrow) HttpRequest();
486 std::stringstream url;
487 url << "https://cocos2d-x.org/images/logo.png?id=" << std::to_string(i);
488 request->setUrl(url.str());
489 request->setRequestType(HttpRequest::Type::GET);
490 request->setResponseCallback(CC_CALLBACK_2(HttpClientClearRequestsTest::onHttpRequestCompleted, this));
491
492 url.str("");
493 if (i < 5) {
494 url << "TEST_" << std::to_string(i);
496 }
497 else {
498 url << "DELETE_" << std::to_string(i);
499 }
500 request->setTag(url.str());
501 HttpClient::getInstance()->send(request);
502 request->release();
503 }
504
505 HttpClient::getInstance()->setClearRequestPredicate([&](HttpRequest* req)
506 {
507 auto r = !!strstr(req->getTag(), "DELETE_");
508 return r;
509 });
510 HttpClient::getInstance()->setClearResponsePredicate(nullptr);
511 HttpClient::getInstance()->clearResponseAndRequestQueue();
512
513
514 // waiting
515 _labelStatusCode->setString("waiting...");
516
517}

引用了 _labelStatusCode, _totalExpectedRequests , 以及 onHttpRequestCompleted().

被这些函数引用 HttpClientClearRequestsTest().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ title()

virtual std::string HttpClientClearRequestsTest::title ( ) const
inlineoverridevirtual

重载 TestCase .

在文件 HttpClientTest.h74 行定义.

74{ return "Http Request Test"; }

类成员变量说明

◆ _labelStatusCode

cocos2d::Label* HttpClientClearRequestsTest::_labelStatusCode
private

◆ _labelTrakingData

cocos2d::Label* HttpClientClearRequestsTest::_labelTrakingData
private

在文件 HttpClientTest.h79 行定义.

被这些函数引用 HttpClientClearRequestsTest() , 以及 onHttpRequestCompleted().

◆ _totalExpectedRequests

int HttpClientClearRequestsTest::_totalExpectedRequests
private

◆ _totalProcessedRequests

int HttpClientClearRequestsTest::_totalProcessedRequests
private

在文件 HttpClientTest.h78 行定义.

被这些函数引用 HttpClientClearRequestsTest(), onHttpRequestCompleted() , 以及 onMenuCancelAllClicked().


该类的文档由以下文件生成: