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 virtual NPError
New(uint16 mode
, int16 argc
, const char* argn
[],
21 const char* argv
[], NPSavedData
* saved
) OVERRIDE
;
23 void OnTimer(uint32 timer_id
);
26 // Table mapping timer index (as used in event schedule) to timer id.
27 static const int kNumTimers
= 3;
28 uint32 timer_ids_
[kNumTimers
];
30 // Schedule of events for test.
31 static const int kNumEvents
= 11;
35 // The index of the timer that triggered the event or -1 for the first
39 // The index of the timer to schedule on this event or -1.
42 // Info about the timer to be scheduled (if any).
43 uint32 scheduled_interval
;
44 bool schedule_repeated
;
46 // The index of the timer to unschedule on this event or -1.
47 int unscheduled_index
;
49 static Event schedule_
[kNumEvents
];
50 int num_received_events_
;
52 // Set of events that have been received (by index).
53 bool received_events_
[kNumEvents
];
55 // Time of initial event.
56 base::Time start_time_
;
58 // Returns index of matching unreceived event or -1 if not found.
59 int FindUnreceivedEvent(int time
, uint32 timer_id
);
60 void HandleEventIndex(int event_index
);
63 } // namespace NPAPIClient
65 #endif // CONTENT_TEST_PLUGIN_PLUGIN_SCHEDULE_TIMER_TEST_H