-
-
Notifications
You must be signed in to change notification settings - Fork 75
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Backdoor implementation #317
Conversation
I really like this.... I'll have a look at it. Really cool feature though, I could see this having a lot of interesting use-cases. |
...so-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/MobileBackdoor.java
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
very cool @rajdeepv! exciting to see the implementation of what you talked about at AppiumConf. Java's lack of metaprogramming makes this so much more difficult. I'm in favor of this idea, though we probably want a java person like @mykola-mokhnach to comment on the specifics of the code
...so-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/MobileBackdoor.java
Outdated
Show resolved
Hide resolved
...so-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/MobileBackdoor.java
Outdated
Show resolved
Hide resolved
...so-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/MobileBackdoor.java
Outdated
Show resolved
Hide resolved
...so-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/MobileBackdoor.java
Outdated
Show resolved
Hide resolved
...so-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/MobileBackdoor.java
Outdated
Show resolved
Hide resolved
...so-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/MobileBackdoor.java
Outdated
Show resolved
Hide resolved
...so-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/MobileBackdoor.java
Show resolved
Hide resolved
...so-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/MobileBackdoor.java
Outdated
Show resolved
Hide resolved
...erver/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/InvocationOperation.java
Outdated
Show resolved
Hide resolved
...erver/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/InvocationOperation.java
Outdated
Show resolved
Hide resolved
...erver/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/InvocationOperation.java
Outdated
Show resolved
Hide resolved
...erver/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/InvocationOperation.java
Outdated
Show resolved
Hide resolved
...erver/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/InvocationOperation.java
Outdated
Show resolved
Hide resolved
...erver/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/InvocationOperation.java
Outdated
Show resolved
Hide resolved
...erver/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/InvocationOperation.java
Outdated
Show resolved
Hide resolved
...erver/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/InvocationOperation.java
Outdated
Show resolved
Hide resolved
...erver/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/InvocationOperation.java
Outdated
Show resolved
Hide resolved
...erver/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/InvocationOperation.java
Outdated
Show resolved
Hide resolved
...so-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/MobileBackdoor.java
Outdated
Show resolved
Hide resolved
...erver/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/InvocationOperation.java
Outdated
Show resolved
Hide resolved
...erver/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/InvocationOperation.java
Outdated
Show resolved
Hide resolved
...erver/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/InvocationOperation.java
Outdated
Show resolved
Hide resolved
...-server/app/src/test/java/io/appium/espressoserver/test/helpers/InvocationOperationTest.java
Show resolved
Hide resolved
...server/app/src/androidTest/java/io/appium/espressoserver/lib/model/MobileBackdoorMethod.java
Show resolved
Hide resolved
...so-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/MobileBackdoor.java
Outdated
Show resolved
Hide resolved
...so-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/MobileBackdoor.java
Outdated
Show resolved
Hide resolved
...o-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/BackdoorResultVoid.java
Outdated
Show resolved
Hide resolved
espresso-server/app/src/test/java/io/appium/espressoserver/test/assets/backdoor-methods.json
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am happy with the current implementation. Feel free to ask your boss about a promotion ;)
He may fire me if sees this thread ;) |
@mykola-mokhnach is there anything pending for this to merge? |
I wait for review from @dpgraham |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just want to say thanks again @rajdeepv for this feature, it will be a lot of fun to release it to users and see how they make use of it!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would like to see an E2E test for this, but I'll approve it and I can just write one.
@saikrishna321 Would you be able to help me with writing a test for this? I don't think it'll work with the APIDemos app but maybe we could test this on the VodQA app?
@saikrishna321 nothing prevents you from writing some custom functions in the android code for your react native app, but it's probably difficult to do anything with the UI since that is all handled by RN |
@jlipps should we build a sample native app to write an example test to show the superpower of backdoors? |
Hi @saikrishna321, I have no experience with RN apps. However just looked the code of vodqa app here https://github.com/appium/VodQAReactNative
Then you can call it from the client as: I did a quick trial and it worked for me. Need to check if we can do it in JS code |
This is a port of one of the calabash-android features called Backdoors to appium-espresso-driver
Using this feature, we can call public methods defined in Application Class or Current Activity.
Example:
if we define a method raiseToast in our android activity or Application class as:
then we can call this method from client as:
(ruby):
This is not a very perfect code because of my lack of Java knowledge. However, this is working solution.