Index: webkit/glue/plugins/test/plugin_schedule_timer_test.h |
=================================================================== |
--- webkit/glue/plugins/test/plugin_schedule_timer_test.h (revision 0) |
+++ webkit/glue/plugins/test/plugin_schedule_timer_test.h (revision 0) |
@@ -0,0 +1,70 @@ |
+// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef WEBKIT_GLUE_PLUGINS_TEST_PLUGIN_SCHEDULE_TIMER_TEST_H |
+#define WEBKIT_GLUE_PLUGINS_TEST_PLUGIN_SCHEDULE_TIMER_TEST_H |
+ |
+#include <vector> |
+ |
+#include "base/at_exit.h" |
+#include "base/time.h" |
+#include "webkit/glue/plugins/test/plugin_test.h" |
+ |
+namespace NPAPIClient { |
+ |
+// This class tests scheduling and unscheduling of timers using |
+// NPN_ScheduleTimer and NPN_UnscheduleTimer. |
+class ScheduleTimerTest : public PluginTest { |
+ public: |
+ ScheduleTimerTest(NPP id, NPNetscapeFuncs *host_functions); |
+ |
+ virtual NPError New(uint16 mode, int16 argc, const char* argn[], |
+ const char* argv[], NPSavedData* saved); |
+ |
+ void OnTimer(uint32 timer_id); |
+ |
+ private: |
+ // base::Time needs one of these. |
+ base::AtExitManager at_exit_manager_; |
+ |
+ // Table mapping timer index (as used in event schedule) to timer id. |
+ static const int kNumTimers = 3; |
+ uint32 timer_ids_[kNumTimers]; |
+ |
+ // Schedule of events for test. |
+ static const int kNumEvents = 11; |
+ struct Event { |
+ int time; |
+ |
+ // The index of the timer that triggered the event or -1 for the first |
+ // event. |
+ int received_index; |
+ |
+ // The index of the timer to schedule on this event or -1. |
+ int scheduled_index; |
+ |
+ // Info about the timer to be scheduled (if any). |
+ uint32 scheduled_interval; |
+ bool schedule_repeated; |
+ |
+ // The index of the timer to unschedule on this event or -1. |
+ int unscheduled_index; |
+ }; |
+ static Event schedule_[kNumEvents]; |
+ int num_received_events_; |
+ |
+ // Set of events that have been received (by index). |
+ bool received_events_[kNumEvents]; |
+ |
+ // Time of initial event. |
+ base::Time start_time_; |
+ |
+ // Returns index of matching unreceived event or -1 if not found. |
+ int FindUnreceivedEvent(int time, uint32 timer_id); |
+ void HandleEvent(int event_index); |
+}; |
+ |
+} // namespace NPAPIClient |
+ |
+#endif // WEBKIT_GLUE_PLUGINS_TEST_PLUGIN_SCHEDULE_TIMER_TEST_H |