1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CONTENT_TEST_PLUGIN_PLUGIN_SCHEDULE_TIMER_TEST_H
6 #define CONTENT_TEST_PLUGIN_PLUGIN_SCHEDULE_TIMER_TEST_H
8 #include "base/compiler_specific.h"
9 #include "base/time/time.h"
10 #include "content/test/plugin/plugin_test.h"
12 namespace NPAPIClient {
14 // This class tests scheduling and unscheduling of timers using
15 // NPN_ScheduleTimer and NPN_UnscheduleTimer.
16 class ScheduleTimerTest : public PluginTest {
18 ScheduleTimerTest(NPP id, NPNetscapeFuncs *host_functions);
20 NPError New(uint16 mode,
24 NPSavedData* saved) override;
26 void OnTimer(uint32 timer_id);
29 // Table mapping timer index (as used in event schedule) to timer id.
30 static const int kNumTimers = 3;
31 uint32 timer_ids_[kNumTimers];
33 // Schedule of events for test.
34 static const int kNumEvents = 11;
38 // The index of the timer that triggered the event or -1 for the first
42 // The index of the timer to schedule on this event or -1.
45 // Info about the timer to be scheduled (if any).
46 uint32 scheduled_interval;
47 bool schedule_repeated;
49 // The index of the timer to unschedule on this event or -1.
50 int unscheduled_index;
52 static Event schedule_[kNumEvents];
53 int num_received_events_;
55 // Set of events that have been received (by index).
56 bool received_events_[kNumEvents];
58 // Time of initial event.
59 base::Time start_time_;
61 // Returns index of matching unreceived event or -1 if not found.
62 int FindUnreceivedEvent(int time, uint32 timer_id);
63 void HandleEventIndex(int event_index);
66 } // namespace NPAPIClient
68 #endif // CONTENT_TEST_PLUGIN_PLUGIN_SCHEDULE_TIMER_TEST_H