Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / content / test / plugin / plugin_schedule_timer_test.h
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.
4
5 #ifndef CONTENT_TEST_PLUGIN_PLUGIN_SCHEDULE_TIMER_TEST_H
6 #define CONTENT_TEST_PLUGIN_PLUGIN_SCHEDULE_TIMER_TEST_H
7
8 #include "base/compiler_specific.h"
9 #include "base/time/time.h"
10 #include "content/test/plugin/plugin_test.h"
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   NPError New(uint16 mode,
21               int16 argc,
22               const char* argn[],
23               const char* argv[],
24               NPSavedData* saved) override;
25
26   void OnTimer(uint32 timer_id);
27
28  private:
29   // Table mapping timer index (as used in event schedule) to timer id.
30   static const int kNumTimers = 3;
31   uint32 timer_ids_[kNumTimers];
32
33   // Schedule of events for test.
34   static const int kNumEvents = 11;
35   struct Event {
36     int time;
37
38     // The index of the timer that triggered the event or -1 for the first
39     // event.
40     int received_index;
41
42     // The index of the timer to schedule on this event or -1.
43     int scheduled_index;
44
45     // Info about the timer to be scheduled (if any).
46     uint32 scheduled_interval;
47     bool schedule_repeated;
48
49     // The index of the timer to unschedule on this event or -1.
50     int unscheduled_index;
51   };
52   static Event schedule_[kNumEvents];
53   int num_received_events_;
54
55   // Set of events that have been received (by index).
56   bool received_events_[kNumEvents];
57
58   // Time of initial event.
59   base::Time start_time_;
60
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);
64 };
65
66 }  // namespace NPAPIClient
67
68 #endif  // CONTENT_TEST_PLUGIN_PLUGIN_SCHEDULE_TIMER_TEST_H