190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved.
290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// found in the LICENSE file.
490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#ifndef CHROME_TEST_CHROMEDRIVER_ALERT_COMMANDS_H_
690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#define CHROME_TEST_CHROMEDRIVER_ALERT_COMMANDS_H_
790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#include "base/callback_forward.h"
990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#include "base/memory/scoped_ptr.h"
1090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
1190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)namespace base {
1290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)class DictionaryValue;
1390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)class Value;
1490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)}
1590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
1690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)struct Session;
1790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)class Status;
1890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)class WebView;
1990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
2090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)typedef base::Callback<Status(
2190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    Session* session,
2290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    WebView* web_view,
2390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    const base::DictionaryValue&,
2490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    scoped_ptr<base::Value>*)> AlertCommand;
2590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
2690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// Executes an alert command.
2790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)Status ExecuteAlertCommand(
2890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)     const AlertCommand& alert_command,
2990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)     Session* session,
3090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)     const base::DictionaryValue& params,
3190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)     scoped_ptr<base::Value>* value);
3290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
3390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// Returns whether an alert is open.
3490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)Status ExecuteGetAlert(
3590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    Session* session,
3690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    WebView* web_view,
3790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    const base::DictionaryValue& params,
3890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    scoped_ptr<base::Value>* value);
3990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
4090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// Returns the text of the open alert.
4190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)Status ExecuteGetAlertText(
4290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    Session* session,
4390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    WebView* web_view,
4490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    const base::DictionaryValue& params,
4590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    scoped_ptr<base::Value>* value);
4690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
4790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// Sets the value of the alert prompt.
4890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)Status ExecuteSetAlertValue(
4990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    Session* session,
5090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    WebView* web_view,
5190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    const base::DictionaryValue& params,
5290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    scoped_ptr<base::Value>* value);
5390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
5490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// Accepts the open alert.
5590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)Status ExecuteAcceptAlert(
5690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    Session* session,
5790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    WebView* web_view,
5890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    const base::DictionaryValue& params,
5990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    scoped_ptr<base::Value>* value);
6090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
6190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// Dismisses the open alert.
6290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)Status ExecuteDismissAlert(
6390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    Session* session,
6490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    WebView* web_view,
6590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    const base::DictionaryValue& params,
6690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    scoped_ptr<base::Value>* value);
6790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
6890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#endif  // CHROME_TEST_CHROMEDRIVER_ALERT_COMMANDS_H_
69