コード例 #1
0
ファイル: test_event.py プロジェクト: miyakogi/wdom
 def setUp(self):
     self.target = EventTarget()
     self.mock = MagicMock(_is_coroutine=False)
     self.e = Event("click")
コード例 #2
0
ファイル: test_event.py プロジェクト: miyakogi/wdom
class TestEventTarget(TestCase):
    def setUp(self):
        self.target = EventTarget()
        self.mock = MagicMock(_is_coroutine=False)
        self.e = Event("click")

    def test_event_dispatch(self):
        self.target.addEventListener("click", self.mock)
        self.assertEqual(len(self.target._listeners), 1)
        self.target.dispatchEvent(self.e)
        self.mock.assert_called_once_with(self.e)

    def test_event_dispatch_empty(self):
        self.target.dispatchEvent(self.e)
        self.mock.assert_not_called()

    def test_event_dispatch_multi(self):
        e1 = Event("click")
        e2 = Event("click")
        self.target.addEventListener("click", self.mock)
        self.target.dispatchEvent(e1)
        self.target.dispatchEvent(e2)
        self.assertEqual(self.mock.call_count, 2)
        self.mock.assert_has_calls([call(e1), call(e2)])

    def test_defferent_event_dispatch(self):
        mock1 = MagicMock(_is_coroutine=False)
        mock2 = MagicMock(_is_coroutine=False)
        e1 = Event("click")
        e2 = Event("event")
        self.target.addEventListener("click", mock1)
        self.target.addEventListener("event", mock2)
        self.assertEqual(len(self.target._listeners), 2)
        self.target.dispatchEvent(e1)
        mock1.assert_called_once_with(e1)
        mock2.assert_not_called()

        self.target.dispatchEvent(e2)
        mock1.assert_called_once_with(e1)
        mock2.assert_called_once_with(e2)

    def test_remove_event(self):
        self.target.addEventListener("click", self.mock)
        self.target.removeEventListener("click", self.mock)
        self.target.dispatchEvent(self.e)
        self.mock.assert_not_called()

    def test_remove_event_multi(self):
        self.target.addEventListener("click", self.mock)
        self.assertEqual(len(self.target._listeners), 1)
        self.target.removeEventListener("click", self.mock)
        self.assertEqual(len(self.target._listeners), 0)
        self.target.dispatchEvent(self.e)
        self.mock.assert_not_called()