TEST_F(MouseControllerUnitTestBase, ShiftUnexpected)
{
    MouseController mc(root);

    //处理意外情况 没有up直接leave
    MouseEvent down1(kET_MOUSE_DOWN, kMB_LEFT, root,
        Point::Make(45, 45), Point::Make(45, 45), 0);
    mc.handleEvent(down1);
    EXPECT_EQ(v31, mc.capture());
    MouseEvent move1(kET_MOUSE_MOVE, kMB_NONE, root,
        Point::Make(29, 20), Point::Make(29, 20), 0);
    mc.handleEvent(move1);
    EXPECT_EQ(v31, mc.capture());
    MouseEvent leave1(kET_MOUSE_LEAVE, kMB_NONE, root,
        Point::Make(45, 45), Point::Make(45, 45), 0);
    mc.handleEvent(leave1);
    EXPECT_EQ(nullptr, mc.capture());
    EXPECT_EQ(nullptr, mc.over());

    //当前capture 没有mouseable属性
    mc.handleEvent(down1);
    EXPECT_EQ(v31, mc.capture());
    v31->setMouseable(false);
    mc.handleEvent(move1);
    EXPECT_EQ(nullptr, mc.capture());
    EXPECT_EQ(v2, mc.over());
    v31->setMouseable(true);
    //当前capture 被remove
    mc.handleEvent(down1);
    EXPECT_EQ(v31, mc.capture());
    v31->detachFromParent();
    mc.handleEvent(move1);
    EXPECT_EQ(nullptr, mc.capture());
    EXPECT_EQ(v2, mc.over());
}
Ejemplo n.º 2
0
void 
sendRequest(request_t request){
	int flag = 1;
	printf("le envio al client: %d req: %d\n", request.PID, request.reqID);

	while(flag){
		enter1();
		if(reqC->reqID == EMPTY ){
			reqC->price = request.price;
			memcpy(reqC, &request, sizeof request);
			flag = 0;
		}
		leave1();
		sleep(1);
	}
}
Ejemplo n.º 3
0
request_t 
receiveRequest(){
	int flag = 1;
	request_t request;

	printf("leyendo desde: %p\n", reqS);

	while ( flag )
	{
		enter1();
		if ( reqS->reqID != EMPTY )
		{
			printf("Servidor recibe: %d\n", reqS->reqID);
			memcpy(&request, reqS, sizeof request);
			reqS->reqID = EMPTY;
			flag = 0;
		}
		leave1();
		sleep(1);
	}
	
	return request;
}