Example #1
0
TEST(A1UnitTestDemos, Interaction) {
  StopWatch* watch = new StopWatch(XApplication::GetInstance()->GetEventQueue(), Rectangle(0, 0, 200, 75));
  EXPECT_FALSE(watch == NULL);

  // Create a synthetic mouse event to test whether watch responds to it
  // or not. Note that this assumes that clicking in the location
  // specified amounts to pressing the start/stop button. Your actual
  // interaction will likely be different, making this test useless.
  // However, this should provide a template for how to do unit tests
  // for interaction.
  EXPECT_FALSE(watch->GetParentWindow() == NULL);
  MouseEvent* e = new MouseEvent(watch->GetParentWindow(), MouseEvent::mouseUp, Point(10, 10));

  EventQueue* queue = XApplication::GetInstance()->GetEventQueue();
  EXPECT_FALSE(queue == NULL);

  EXPECT_FALSE(watch->IsRunning());
  queue->AddEventToQueue(e);
  unsigned int max_num_tries_to_flush_queue = 10;
  while (max_num_tries_to_flush_queue-- > 0
         && queue->GetNumEventsInQueue() > 0
         && !watch->IsRunning())
    {
      queue->ProcessNextEvent();
    }
  EXPECT_TRUE(watch->IsRunning());

  queue->ClearEventQueue();
  delete watch;
  // We do not need to delete the mouse event that we created, because
  // it will be deleted automatically by the EventQueue.
}
Example #2
0
TEST(A1MarkingEventQueueTests, EventQueueDestructorTest) {
  // Test that events are properly deleted on destruction
  EventQueue* eventQueue = new EventQueue();

  EXPECT_EQ(0, MemoryTrackingEvent::num_allocated);
  MemoryTrackingEvent* event = new MemoryTrackingEvent();
  EXPECT_EQ(1, MemoryTrackingEvent::num_allocated);

  eventQueue->AddEventToQueue(event);
  EXPECT_EQ(1, eventQueue->GetNumEventsInQueue());

  delete eventQueue;
  EXPECT_EQ(0, MemoryTrackingEvent::num_allocated);
}
Example #3
0
TEST(A1MarkingEventQueueTests, EventQueuing) {
  // Test that events are queued properly
  EventQueue eventQueue;
  EXPECT_EQ(0, eventQueue.GetNumEventsInQueue());

  EXPECT_EQ(0, MemoryTrackingEvent::num_allocated);
  MemoryTrackingEvent* event = new MemoryTrackingEvent();
  EXPECT_EQ(1, MemoryTrackingEvent::num_allocated);
  EXPECT_EQ(0, MemoryTrackingEvent::num_dispatches);

  eventQueue.AddEventToQueue(event);
  EXPECT_EQ(1, eventQueue.GetNumEventsInQueue());

  eventQueue.ProcessNextEvent();
  EXPECT_EQ(0, eventQueue.GetNumEventsInQueue());
  EXPECT_EQ(0, MemoryTrackingEvent::num_allocated);
  EXPECT_EQ(1, MemoryTrackingEvent::num_dispatches);
}