"Fossies" - the Fresh Open Source Software Archive 
Member "selenium-selenium-4.8.1/cpp/iedriver/CommandHandlerRepository.cpp" (17 Feb 2023, 12829 Bytes) of package /linux/www/selenium-selenium-4.8.1.tar.gz:
As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style:
standard) with prefixed line numbers and
code folding option.
Alternatively you can here
view or
download the uninterpreted source code file.
For more information about "CommandHandlerRepository.cpp" see the
Fossies "Dox" file reference documentation.
1 // Licensed to the Software Freedom Conservancy (SFC) under one
2 // or more contributor license agreements. See the NOTICE file
3 // distributed with this work for additional information
4 // regarding copyright ownership. The SFC licenses this file
5 // to you under the Apache License, Version 2.0 (the "License");
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 // http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16
17 #include "CommandHandlerRepository.h"
18
19 #include "command_types.h"
20 #include "logging.h"
21
22 #include "CommandHandlers/AcceptAlertCommandHandler.h"
23 #include "CommandHandlers/ActionsCommandHandler.h"
24 #include "CommandHandlers/AddCookieCommandHandler.h"
25 #include "CommandHandlers/ClickElementCommandHandler.h"
26 #include "CommandHandlers/ClearElementCommandHandler.h"
27 #include "CommandHandlers/CloseWindowCommandHandler.h"
28 #include "CommandHandlers/CreateNewWindowCommandHandler.h"
29 #include "CommandHandlers/DeleteAllCookiesCommandHandler.h"
30 #include "CommandHandlers/DeleteCookieCommandHandler.h"
31 #include "CommandHandlers/DismissAlertCommandHandler.h"
32 #include "CommandHandlers/ElementEqualsCommandHandler.h"
33 #include "CommandHandlers/ExecuteAsyncScriptCommandHandler.h"
34 #include "CommandHandlers/ExecuteScriptCommandHandler.h"
35 #include "CommandHandlers/FindChildElementCommandHandler.h"
36 #include "CommandHandlers/FindChildElementsCommandHandler.h"
37 #include "CommandHandlers/FindElementCommandHandler.h"
38 #include "CommandHandlers/FindElementsCommandHandler.h"
39 #include "CommandHandlers/FullScreenWindowCommandHandler.h"
40 #include "CommandHandlers/GetActiveElementCommandHandler.h"
41 #include "CommandHandlers/GetAlertTextCommandHandler.h"
42 #include "CommandHandlers/GetAllCookiesCommandHandler.h"
43 #include "CommandHandlers/GetAllWindowHandlesCommandHandler.h"
44 #include "CommandHandlers/GetCurrentUrlCommandHandler.h"
45 #include "CommandHandlers/GetCurrentWindowHandleCommandHandler.h"
46 #include "CommandHandlers/GetElementAttributeCommandHandler.h"
47 #include "CommandHandlers/GetElementPropertyCommandHandler.h"
48 #include "CommandHandlers/GetElementRectCommandHandler.h"
49 #include "CommandHandlers/GetElementTagNameCommandHandler.h"
50 #include "CommandHandlers/GetElementTextCommandHandler.h"
51 #include "CommandHandlers/GetElementValueOfCssPropertyCommandHandler.h"
52 #include "CommandHandlers/GetNamedCookieCommandHandler.h"
53 #include "CommandHandlers/GetSessionCapabilitiesCommandHandler.h"
54 #include "CommandHandlers/GetPageSourceCommandHandler.h"
55 #include "CommandHandlers/GetTimeoutsCommandHandler.h"
56 #include "CommandHandlers/GetTitleCommandHandler.h"
57 #include "CommandHandlers/GetWindowRectCommandHandler.h"
58 #include "CommandHandlers/GoBackCommandHandler.h"
59 #include "CommandHandlers/GoForwardCommandHandler.h"
60 #include "CommandHandlers/GoToUrlCommandHandler.h"
61 #include "CommandHandlers/IsElementDisplayedCommandHandler.h"
62 #include "CommandHandlers/IsElementEnabledCommandHandler.h"
63 #include "CommandHandlers/IsElementSelectedCommandHandler.h"
64 #include "CommandHandlers/MinimizeWindowCommandHandler.h"
65 #include "CommandHandlers/MaximizeWindowCommandHandler.h"
66 #include "CommandHandlers/NewSessionCommandHandler.h"
67 #include "CommandHandlers/QuitCommandHandler.h"
68 #include "CommandHandlers/RefreshCommandHandler.h"
69 #include "CommandHandlers/ReleaseActionsCommandHandler.h"
70 #include "CommandHandlers/ScreenshotCommandHandler.h"
71 #include "CommandHandlers/ScreenshotElementCommandHandler.h"
72 #include "CommandHandlers/SendKeysCommandHandler.h"
73 #include "CommandHandlers/SendKeysToAlertCommandHandler.h"
74 #include "CommandHandlers/SetAlertCredentialsCommandHandler.h"
75 #include "CommandHandlers/SetTimeoutsCommandHandler.h"
76 #include "CommandHandlers/SetWindowRectCommandHandler.h"
77 #include "CommandHandlers/SwitchToFrameCommandHandler.h"
78 #include "CommandHandlers/SwitchToParentFrameCommandHandler.h"
79 #include "CommandHandlers/SwitchToWindowCommandHandler.h"
80 #include "IECommandHandler.h"
81
82 namespace webdriver {
83
84 CommandHandlerRepository::CommandHandlerRepository(void) {
85 this->PopulateCommandHandlers();
86 }
87
88 CommandHandlerRepository::~CommandHandlerRepository(void) {
89 }
90
91 bool CommandHandlerRepository::IsValidCommand(const std::string& command_name) {
92 CommandHandlerMap::const_iterator found_iterator =
93 this->command_handlers_.find(command_name);
94
95 return found_iterator != this->command_handlers_.end();
96 }
97
98 CommandHandlerHandle CommandHandlerRepository::GetCommandHandler(const std::string& command_name) {
99 CommandHandlerMap::const_iterator found_iterator =
100 this->command_handlers_.find(command_name);
101
102 if (found_iterator == this->command_handlers_.end()) {
103 return NULL;
104 }
105
106 return found_iterator->second;
107 }
108
109 void CommandHandlerRepository::PopulateCommandHandlers() {
110 LOG(TRACE) << "Entering CommandHandlerRepository::PopulateCommandHandlers";
111
112 this->command_handlers_[webdriver::CommandType::NoCommand] = CommandHandlerHandle(new IECommandHandler);
113 this->command_handlers_[webdriver::CommandType::NewSession] = CommandHandlerHandle(new NewSessionCommandHandler);
114 this->command_handlers_[webdriver::CommandType::Quit] = CommandHandlerHandle(new QuitCommandHandler);
115 this->command_handlers_[webdriver::CommandType::GetTimeouts] = CommandHandlerHandle(new GetTimeoutsCommandHandler);
116 this->command_handlers_[webdriver::CommandType::SetTimeouts] = CommandHandlerHandle(new SetTimeoutsCommandHandler);
117 this->command_handlers_[webdriver::CommandType::Get] = CommandHandlerHandle(new GoToUrlCommandHandler);
118 this->command_handlers_[webdriver::CommandType::GetCurrentUrl] = CommandHandlerHandle(new GetCurrentUrlCommandHandler);
119 this->command_handlers_[webdriver::CommandType::GoBack] = CommandHandlerHandle(new GoBackCommandHandler);
120 this->command_handlers_[webdriver::CommandType::GoForward] = CommandHandlerHandle(new GoForwardCommandHandler);
121 this->command_handlers_[webdriver::CommandType::Refresh] = CommandHandlerHandle(new RefreshCommandHandler);
122 this->command_handlers_[webdriver::CommandType::GetTitle] = CommandHandlerHandle(new GetTitleCommandHandler);
123 this->command_handlers_[webdriver::CommandType::GetCurrentWindowHandle] = CommandHandlerHandle(new GetCurrentWindowHandleCommandHandler);
124 this->command_handlers_[webdriver::CommandType::CloseWindow] = CommandHandlerHandle(new CloseWindowCommandHandler);
125 this->command_handlers_[webdriver::CommandType::SwitchToWindow] = CommandHandlerHandle(new SwitchToWindowCommandHandler);
126 this->command_handlers_[webdriver::CommandType::GetWindowHandles] = CommandHandlerHandle(new GetAllWindowHandlesCommandHandler);
127 this->command_handlers_[webdriver::CommandType::NewWindow] = CommandHandlerHandle(new CreateNewWindowCommandHandler);
128 this->command_handlers_[webdriver::CommandType::SwitchToFrame] = CommandHandlerHandle(new SwitchToFrameCommandHandler);
129 this->command_handlers_[webdriver::CommandType::SwitchToParentFrame] = CommandHandlerHandle(new SwitchToParentFrameCommandHandler);
130 this->command_handlers_[webdriver::CommandType::GetWindowRect] = CommandHandlerHandle(new GetWindowRectCommandHandler);
131 this->command_handlers_[webdriver::CommandType::SetWindowRect] = CommandHandlerHandle(new SetWindowRectCommandHandler);
132 this->command_handlers_[webdriver::CommandType::MaximizeWindow] = CommandHandlerHandle(new MaximizeWindowCommandHandler);
133 this->command_handlers_[webdriver::CommandType::MinimizeWindow] = CommandHandlerHandle(new MinimizeWindowCommandHandler);
134 this->command_handlers_[webdriver::CommandType::FullscreenWindow] = CommandHandlerHandle(new FullScreenWindowCommandHandler);
135 this->command_handlers_[webdriver::CommandType::GetActiveElement] = CommandHandlerHandle(new GetActiveElementCommandHandler);
136 this->command_handlers_[webdriver::CommandType::FindElement] = CommandHandlerHandle(new FindElementCommandHandler);
137 this->command_handlers_[webdriver::CommandType::FindElements] = CommandHandlerHandle(new FindElementsCommandHandler);
138 this->command_handlers_[webdriver::CommandType::FindChildElement] = CommandHandlerHandle(new FindChildElementCommandHandler);
139 this->command_handlers_[webdriver::CommandType::FindChildElements] = CommandHandlerHandle(new FindChildElementsCommandHandler);
140 this->command_handlers_[webdriver::CommandType::IsElementSelected] = CommandHandlerHandle(new IsElementSelectedCommandHandler);
141 this->command_handlers_[webdriver::CommandType::GetElementAttribute] = CommandHandlerHandle(new GetElementAttributeCommandHandler);
142 this->command_handlers_[webdriver::CommandType::GetElementProperty] = CommandHandlerHandle(new GetElementPropertyCommandHandler);
143 this->command_handlers_[webdriver::CommandType::GetElementValueOfCssProperty] = CommandHandlerHandle(new GetElementValueOfCssPropertyCommandHandler);
144 this->command_handlers_[webdriver::CommandType::GetElementText] = CommandHandlerHandle(new GetElementTextCommandHandler);
145 this->command_handlers_[webdriver::CommandType::GetElementTagName] = CommandHandlerHandle(new GetElementTagNameCommandHandler);
146 this->command_handlers_[webdriver::CommandType::GetElementRect] = CommandHandlerHandle(new GetElementRectCommandHandler);
147 this->command_handlers_[webdriver::CommandType::IsElementEnabled] = CommandHandlerHandle(new IsElementEnabledCommandHandler);
148 this->command_handlers_[webdriver::CommandType::ClickElement] = CommandHandlerHandle(new ClickElementCommandHandler);
149 this->command_handlers_[webdriver::CommandType::ClearElement] = CommandHandlerHandle(new ClearElementCommandHandler);
150 this->command_handlers_[webdriver::CommandType::SendKeysToElement] = CommandHandlerHandle(new SendKeysCommandHandler);
151 this->command_handlers_[webdriver::CommandType::GetPageSource] = CommandHandlerHandle(new GetPageSourceCommandHandler);
152 this->command_handlers_[webdriver::CommandType::ExecuteScript] = CommandHandlerHandle(new ExecuteScriptCommandHandler);
153 this->command_handlers_[webdriver::CommandType::ExecuteAsyncScript] = CommandHandlerHandle(new ExecuteAsyncScriptCommandHandler);
154 this->command_handlers_[webdriver::CommandType::GetAllCookies] = CommandHandlerHandle(new GetAllCookiesCommandHandler);
155 this->command_handlers_[webdriver::CommandType::GetNamedCookie] = CommandHandlerHandle(new GetNamedCookieCommandHandler);
156 this->command_handlers_[webdriver::CommandType::AddCookie] = CommandHandlerHandle(new AddCookieCommandHandler);
157 this->command_handlers_[webdriver::CommandType::DeleteNamedCookie] = CommandHandlerHandle(new DeleteCookieCommandHandler);
158 this->command_handlers_[webdriver::CommandType::DeleteAllCookies] = CommandHandlerHandle(new DeleteAllCookiesCommandHandler);
159 this->command_handlers_[webdriver::CommandType::Actions] = CommandHandlerHandle(new ActionsCommandHandler);
160 this->command_handlers_[webdriver::CommandType::ReleaseActions] = CommandHandlerHandle(new ReleaseActionsCommandHandler);
161 this->command_handlers_[webdriver::CommandType::DismissAlert] = CommandHandlerHandle(new DismissAlertCommandHandler);
162 this->command_handlers_[webdriver::CommandType::AcceptAlert] = CommandHandlerHandle(new AcceptAlertCommandHandler);
163 this->command_handlers_[webdriver::CommandType::GetAlertText] = CommandHandlerHandle(new GetAlertTextCommandHandler);
164 this->command_handlers_[webdriver::CommandType::SendKeysToAlert] = CommandHandlerHandle(new SendKeysToAlertCommandHandler);
165 this->command_handlers_[webdriver::CommandType::Screenshot] = CommandHandlerHandle(new ScreenshotCommandHandler);
166 this->command_handlers_[webdriver::CommandType::ElementScreenshot] = CommandHandlerHandle(new ScreenshotElementCommandHandler);
167
168 // Additional commands required to be supported, but not defined
169 // in the specification.
170 this->command_handlers_[webdriver::CommandType::SetAlertCredentials] = CommandHandlerHandle(new SetAlertCredentialsCommandHandler);
171 this->command_handlers_[webdriver::CommandType::IsElementDisplayed] = CommandHandlerHandle(new IsElementDisplayedCommandHandler);
172 this->command_handlers_[webdriver::CommandType::ElementEquals] = CommandHandlerHandle(new ElementEqualsCommandHandler);
173 this->command_handlers_[webdriver::CommandType::GetSessionCapabilities] = CommandHandlerHandle(new GetSessionCapabilitiesCommandHandler);
174
175 // Commands intercepted by the server before reaching the command executor
176 this->command_handlers_[webdriver::CommandType::Status] = CommandHandlerHandle(new IECommandHandler);
177 this->command_handlers_[webdriver::CommandType::GetSessionList] = CommandHandlerHandle(new IECommandHandler);
178 }
179
180 } // namespace webdriver