12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved. 22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file. 42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef CHROME_TEST_CHROMEDRIVER_KEY_CONVERTER_H_ 62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define CHROME_TEST_CHROMEDRIVER_KEY_CONVERTER_H_ 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <list> 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <string> 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 11868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "base/strings/string16.h" 12d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "ui/events/keycodes/keyboard_codes.h" 132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)struct KeyEvent; 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class Status; 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Convenience functions for creating |KeyEvent|s. Used by unittests. 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)KeyEvent CreateKeyDownEvent(ui::KeyboardCode key_code, int modifiers); 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)KeyEvent CreateKeyUpEvent(ui::KeyboardCode key_code, int modifiers); 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)KeyEvent CreateCharEvent(const std::string& unmodified_text, 212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const std::string& modified_text, 222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int modifiers); 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Converts keys into appropriate |KeyEvent|s. This will do a best effort 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// conversion. However, if the input is invalid it will return a status with 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// an error message. If |release_modifiers| is true, all modifiers would be 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// depressed. |modifiers| acts both an input and an output, however, only when 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// the conversion process is successful will |modifiers| be changed. 295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)Status ConvertKeysToKeyEvents(const base::string16& keys, 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool release_modifiers, 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int* modifiers, 322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) std::list<KeyEvent>* key_events); 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif // CHROME_TEST_CHROMEDRIVER_KEY_CONVERTER_H_ 35