-
-
Notifications
You must be signed in to change notification settings - Fork 8.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[dotnet] Adding support for Firefox and Chromium Android options
- Loading branch information
Showing
5 changed files
with
280 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
// <copyright file="ChromiumAndroidOptions.cs" company="WebDriver Committers"> | ||
// Licensed to the Software Freedom Conservancy (SFC) under one | ||
// or more contributor license agreements. See the NOTICE file | ||
// distributed with this work for additional information | ||
// regarding copyright ownership. The SFC licenses this file | ||
// to you under the Apache License, Version 2.0 (the "License"); | ||
// you may not use this file except in compliance with the License. | ||
// You may obtain a copy of the License at | ||
// | ||
// http://www.apache.org/licenses/LICENSE-2.0 | ||
// | ||
// Unless required by applicable law or agreed to in writing, software | ||
// distributed under the License is distributed on an "AS IS" BASIS, | ||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
// See the License for the specific language governing permissions and | ||
// limitations under the License. | ||
// </copyright> | ||
|
||
using OpenQA.Selenium.Internal; | ||
|
||
namespace OpenQA.Selenium.Chromium | ||
{ | ||
/// <summary> | ||
/// Generates the capabilities for automating Chromium applications on Android | ||
/// </summary> | ||
public class ChromiumAndroidOptions : AndroidOptions | ||
{ | ||
private string androidProcess; | ||
private bool androidUseRunningApp; | ||
|
||
/// <summary> | ||
/// Initializes a new instance of the <see cref="ChromiumAndroidOptions"/> class. | ||
/// </summary> | ||
/// <param name="androidPackage"></param> | ||
public ChromiumAndroidOptions(string androidPackage) : base(androidPackage) | ||
{ | ||
} | ||
|
||
/// <summary> | ||
/// Gets or sets a value indicating whether to use an already running app. | ||
/// </summary> | ||
public bool UseRunningApp | ||
{ | ||
get { return this.androidUseRunningApp; } | ||
set { this.androidUseRunningApp = value; } | ||
} | ||
|
||
/// <summary> | ||
/// Gets or sets the process name of the Activity hosting the app. If not given, it | ||
/// is assumed to be the same as <see cref="AndroidActivity"/>. | ||
/// </summary> | ||
public string AndroidProcess | ||
{ | ||
get { return this.androidProcess; } | ||
set { this.androidProcess = value; } | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
// <copyright file="FirefoxAndroidOptions.cs" company="WebDriver Committers"> | ||
// Licensed to the Software Freedom Conservancy (SFC) under one | ||
// or more contributor license agreements. See the NOTICE file | ||
// distributed with this work for additional information | ||
// regarding copyright ownership. The SFC licenses this file | ||
// to you under the Apache License, Version 2.0 (the "License"); | ||
// you may not use this file except in compliance with the License. | ||
// You may obtain a copy of the License at | ||
// | ||
// http://www.apache.org/licenses/LICENSE-2.0 | ||
// | ||
// Unless required by applicable law or agreed to in writing, software | ||
// distributed under the License is distributed on an "AS IS" BASIS, | ||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
// See the License for the specific language governing permissions and | ||
// limitations under the License. | ||
// </copyright> | ||
|
||
using System.Collections.Generic; | ||
using System.Collections.ObjectModel; | ||
using OpenQA.Selenium.Internal; | ||
|
||
namespace OpenQA.Selenium.Firefox | ||
{ | ||
/// <summary> | ||
/// Generates the capabilities for automating Firefox applications on Android | ||
/// </summary> | ||
public class FirefoxAndroidOptions : AndroidOptions | ||
{ | ||
private string androidPackage; | ||
private string androidDeviceSerial; | ||
private string androidActivity; | ||
private List<string> androidIntentArguments = new List<string>(); | ||
|
||
/// <summary> | ||
/// Initializes a new instance of the <see cref="FirefoxAndroidOptions"/> class. | ||
/// </summary> | ||
/// <param name="androidPackage"></param> | ||
public FirefoxAndroidOptions(string androidPackage) : base(androidPackage) | ||
{ | ||
} | ||
|
||
/// <summary> | ||
/// Gets a read-only list of the intent arguments set for this set of options. | ||
/// </summary> | ||
public ReadOnlyCollection<string> AndroidIntentArguments | ||
{ | ||
get { return this.androidIntentArguments.AsReadOnly(); } | ||
} | ||
|
||
/// <summary> | ||
/// Argument to launch the intent with. The given intent arguments are appended to the "am start" command. | ||
/// </summary> | ||
/// <param name="arguments">The argument to add.</param> | ||
public void AddIntentArgument(string argument) | ||
{ | ||
this.AddIntentArguments(argument); | ||
} | ||
|
||
/// <summary> | ||
/// Arguments to launch the intent with. The given intent arguments are appended to the "am start" command. | ||
/// </summary> | ||
/// <param name="arguments">The arguments to add.</param> | ||
public void AddIntentArguments(params string[] arguments) | ||
{ | ||
this.androidIntentArguments.AddRange(arguments); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
// <copyright file="AndroidOptions.cs" company="WebDriver Committers"> | ||
// Licensed to the Software Freedom Conservancy (SFC) under one | ||
// or more contributor license agreements. See the NOTICE file | ||
// distributed with this work for additional information | ||
// regarding copyright ownership. The SFC licenses this file | ||
// to you under the Apache License, Version 2.0 (the "License"); | ||
// you may not use this file except in compliance with the License. | ||
// You may obtain a copy of the License at | ||
// | ||
// http://www.apache.org/licenses/LICENSE-2.0 | ||
// | ||
// Unless required by applicable law or agreed to in writing, software | ||
// distributed under the License is distributed on an "AS IS" BASIS, | ||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
// See the License for the specific language governing permissions and | ||
// limitations under the License. | ||
// </copyright> | ||
|
||
using System; | ||
|
||
namespace OpenQA.Selenium.Internal | ||
{ | ||
/// <summary> | ||
/// Provides a base class for options for browsers to be automated on Android. | ||
/// </summary> | ||
public class AndroidOptions | ||
{ | ||
private string androidPackage; | ||
private string androidDeviceSerial; | ||
private string androidActivity; | ||
|
||
/// <summary> | ||
/// Initializes a new instance of the <see cref="AndroidOptions"/> class. | ||
/// </summary> | ||
/// <param name="androidPackage"></param> | ||
protected AndroidOptions(string androidPackage) | ||
{ | ||
if (string.IsNullOrEmpty(androidPackage)) | ||
{ | ||
throw new ArgumentException("The Android package cannot be null or the empty string", "androidPackage"); | ||
} | ||
|
||
this.androidPackage = androidPackage; | ||
} | ||
|
||
/// <summary> | ||
/// The package name of the application to automate. | ||
/// </summary> | ||
public string AndroidPackage | ||
{ | ||
get { return this.androidPackage; } | ||
} | ||
|
||
/// <summary> | ||
/// The serial number of the device on which to launch the application. | ||
/// </summary> | ||
public string AndroidDeviceSerial | ||
{ | ||
get { return this.androidDeviceSerial; } | ||
set { this.androidDeviceSerial = value; } | ||
} | ||
|
||
/// <summary> | ||
/// Gets or sets the name of the Activity hosting the app. | ||
/// </summary> | ||
public string AndroidActivity | ||
{ | ||
get { return this.androidActivity; } | ||
set { this.androidActivity = value; } | ||
} | ||
} | ||
} |