[email protected] | 0da6b445 | 2011-11-16 21:36:16 | [diff] [blame] | 1 | // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
[email protected] | 04d2c30 | 2009-10-26 21:49:10 | [diff] [blame] | 2 | // Use of this source code is governed by a BSD-style license that can be |
3 | // found in the LICENSE file. | ||||
4 | |||||
[email protected] | a4009af | 2013-07-19 05:20:24 | [diff] [blame] | 5 | #ifndef CONTENT_TEST_PLUGIN_PLUGIN_SCHEDULE_TIMER_TEST_H |
6 | #define CONTENT_TEST_PLUGIN_PLUGIN_SCHEDULE_TIMER_TEST_H | ||||
[email protected] | 04d2c30 | 2009-10-26 21:49:10 | [diff] [blame] | 7 | |
[email protected] | 0da6b445 | 2011-11-16 21:36:16 | [diff] [blame] | 8 | #include "base/compiler_specific.h" |
[email protected] | 0a8ebe1 | 2013-06-28 15:23:23 | [diff] [blame] | 9 | #include "base/time/time.h" |
[email protected] | a4009af | 2013-07-19 05:20:24 | [diff] [blame] | 10 | #include "content/test/plugin/plugin_test.h" |
[email protected] | 04d2c30 | 2009-10-26 21:49:10 | [diff] [blame] | 11 | |
12 | namespace NPAPIClient { | ||||
13 | |||||
14 | // This class tests scheduling and unscheduling of timers using | ||||
15 | // NPN_ScheduleTimer and NPN_UnscheduleTimer. | ||||
16 | class ScheduleTimerTest : public PluginTest { | ||||
17 | public: | ||||
18 | ScheduleTimerTest(NPP id, NPNetscapeFuncs *host_functions); | ||||
19 | |||||
20 | virtual NPError New(uint16 mode, int16 argc, const char* argn[], | ||||
anand.ratn | 71fc3adc | 2014-10-06 13:50:07 | [diff] [blame] | 21 | const char* argv[], NPSavedData* saved) override; |
[email protected] | 04d2c30 | 2009-10-26 21:49:10 | [diff] [blame] | 22 | |
23 | void OnTimer(uint32 timer_id); | ||||
24 | |||||
25 | private: | ||||
[email protected] | 04d2c30 | 2009-10-26 21:49:10 | [diff] [blame] | 26 | // Table mapping timer index (as used in event schedule) to timer id. |
27 | static const int kNumTimers = 3; | ||||
28 | uint32 timer_ids_[kNumTimers]; | ||||
29 | |||||
30 | // Schedule of events for test. | ||||
31 | static const int kNumEvents = 11; | ||||
32 | struct Event { | ||||
33 | int time; | ||||
34 | |||||
35 | // The index of the timer that triggered the event or -1 for the first | ||||
36 | // event. | ||||
37 | int received_index; | ||||
38 | |||||
39 | // The index of the timer to schedule on this event or -1. | ||||
40 | int scheduled_index; | ||||
41 | |||||
42 | // Info about the timer to be scheduled (if any). | ||||
43 | uint32 scheduled_interval; | ||||
44 | bool schedule_repeated; | ||||
45 | |||||
46 | // The index of the timer to unschedule on this event or -1. | ||||
47 | int unscheduled_index; | ||||
48 | }; | ||||
49 | static Event schedule_[kNumEvents]; | ||||
50 | int num_received_events_; | ||||
51 | |||||
52 | // Set of events that have been received (by index). | ||||
53 | bool received_events_[kNumEvents]; | ||||
54 | |||||
55 | // Time of initial event. | ||||
56 | base::Time start_time_; | ||||
57 | |||||
58 | // Returns index of matching unreceived event or -1 if not found. | ||||
59 | int FindUnreceivedEvent(int time, uint32 timer_id); | ||||
[email protected] | 9f95c69 | 2011-02-11 19:20:19 | [diff] [blame] | 60 | void HandleEventIndex(int event_index); |
[email protected] | 04d2c30 | 2009-10-26 21:49:10 | [diff] [blame] | 61 | }; |
62 | |||||
63 | } // namespace NPAPIClient | ||||
64 | |||||
[email protected] | a4009af | 2013-07-19 05:20:24 | [diff] [blame] | 65 | #endif // CONTENT_TEST_PLUGIN_PLUGIN_SCHEDULE_TIMER_TEST_H |