blob: 23fa2396721b806fa6ed54dc54c5e03b7f91ef4c [file] [log] [blame]
[email protected]0da6b4452011-11-16 21:36:161// Copyright (c) 2011 The Chromium Authors. All rights reserved.
[email protected]04d2c302009-10-26 21:49:102// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
[email protected]a4009af2013-07-19 05:20:245#ifndef CONTENT_TEST_PLUGIN_PLUGIN_SCHEDULE_TIMER_TEST_H
6#define CONTENT_TEST_PLUGIN_PLUGIN_SCHEDULE_TIMER_TEST_H
[email protected]04d2c302009-10-26 21:49:107
[email protected]0da6b4452011-11-16 21:36:168#include "base/compiler_specific.h"
[email protected]0a8ebe12013-06-28 15:23:239#include "base/time/time.h"
[email protected]a4009af2013-07-19 05:20:2410#include "content/test/plugin/plugin_test.h"
[email protected]04d2c302009-10-26 21:49:1011
12namespace NPAPIClient {
13
14// This class tests scheduling and unscheduling of timers using
15// NPN_ScheduleTimer and NPN_UnscheduleTimer.
16class 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.ratn71fc3adc2014-10-06 13:50:0721 const char* argv[], NPSavedData* saved) override;
[email protected]04d2c302009-10-26 21:49:1022
23 void OnTimer(uint32 timer_id);
24
25 private:
[email protected]04d2c302009-10-26 21:49:1026 // 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]9f95c692011-02-11 19:20:1960 void HandleEventIndex(int event_index);
[email protected]04d2c302009-10-26 21:49:1061};
62
63} // namespace NPAPIClient
64
[email protected]a4009af2013-07-19 05:20:2465#endif // CONTENT_TEST_PLUGIN_PLUGIN_SCHEDULE_TIMER_TEST_H