Mercurial > MadButterfly
diff src/observer.c @ 74:3e3e074120a7
test case for observer
author | Thinker K.F. Li <thinker@branda.to> |
---|---|
date | Mon, 18 Aug 2008 10:46:03 +0800 |
parents | 9ab15ebc9061 |
children | a6763f080da5 |
line wrap: on
line diff
--- a/src/observer.c Mon Aug 18 01:59:26 2008 +0800 +++ b/src/observer.c Mon Aug 18 10:46:03 2008 +0800 @@ -112,28 +112,31 @@ static void handler(event_t *evt, void *arg) { int *cnt = (int *)arg; - CU_ASSERT(evt->type == EVT_MOUSE_OVER); + CU_ASSERT(evt->type == EVT_MOUSE_OUT); (*cnt)++; } void test_observer(void) { subject_t *subject; - observer_t *observer; + observer_t *observer[2]; event_t evt; int cnt = 0; subject = subject_new(&test_factory, NULL, 0); subject->flags |= SUBF_STOP_PROPAGATE; - observer = subject_add_observer(&test_factory, subject, - handler, &cnt); + observer[0] = subject_add_observer(&test_factory, subject, + handler, &cnt); + observer[1] = subject_add_observer(&test_factory, subject, + handler, &cnt); - evt.type = EVT_MOUSE_OVER; + evt.type = EVT_MOUSE_OUT; evt.tgt = NULL; evt.cur_tgt = NULL; subject_notify(&test_factory, subject, &evt); - CU_ASSERT(cnt == 1); + CU_ASSERT(cnt == 2); - subject_remove_observer(&test_factory, subject, observer); + subject_remove_observer(&test_factory, subject, observer[0]); + subject_remove_observer(&test_factory, subject, observer[1]); subject_free(&test_factory, subject); }