Add apple tvOS platform constant by ajeeshvl · Pull Request #1142 · appium/java-client

@ajeeshvl

Change list

This is to add support for apple tvOS.

Types of changes

What types of changes are you proposing/introducing to Java client?

  • No changes in production code.
  • Bugfix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)

Details

This adds tvOS platform.
tvOS also uses xcuitest-driver.

Related PRs
appium/appium-xcuitest-driver#911
appium/appium#12401

KazuCocoa

extends AppiumDriver<T>
implements HidesKeyboardWithKeyName, HasIOSSettings, HasOnScreenKeyboard,
LocksDevice, FindsByIosNSPredicate<T>, FindsByIosClassChain<T>,
PushesFiles, CanRecordScreen, HasIOSClipboard {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did you check all of commands work? (just a confirmation.)
Clipboad does not work on this list.

@mykola-mokhnach

For me it does not make sense to have a separate class, which, actually, adds nothing. We already had youidriver like that and removed it.

@ajeeshvl

@mykola-mokhnach sounds good. Since AppiumDriver is not abstract, we can use that. Do you think, platform name tvOS can still be added in MobilePlatform class?

@mykola-mokhnach

Do you think, platform name tvOS can still be added in MobilePlatform class?

Yes, this will be useful to have a constant for it

@ajeeshvl

@ajeeshvl ajeeshvl changed the title Add apple tvOS driver support Add apple tvOS platform constant

May 13, 2019

@ajeeshvl

KazuCocoa

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks!

SrinivasanTarget

mykola-mokhnach

String IOS = "iOS";
String FIREFOX_OS = "FirefoxOS";
String WINDOWS = "Windows";
String TVOS = "tvOS";

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does it make sense to have it inside AutomationName interface instead?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, I do not think so in this case.
It confuses users a bit since when we use tvOS, the capability should be like:

...
automationName: 'xcuites', # AutomationName.IOS_XCUI_TEST
platformName: 'tvOS'      # AutomationName.IOS_TVOS vs MobilePlatform.TVOS (or APPLE_TVOS is proper?)
...

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unlike youiengine tvos uses xcuitest as automation name. I still think having a TVOSdriver would also be helpful. That would avoid confusion for users around what capability needs to be used for tvos.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would say not to have TVOSDriver class. We should just document what capability to use for TVOS.