Shopify / android-testify

Add screenshots to your Android tests
https://testify.dev
MIT License
231 stars 23 forks source link

Intellij plugin now supports Android Studio Bumblebee | 2021.1.1 Canary 9 | Build 211.* #240

Closed DanielJette closed 2 years ago

DanielJette commented 3 years ago

What does this change accomplish?

Intellij plugin now supports Android Studio Bumblebee | 2021.1.1 Canary 9 | Build 211.*

Resolves #224

How have you achieved it?

Tophat instructions

  1. Install the Canary preview of Android Studio from https://developer.android.com/studio/preview/index.html
  2. Check out this branch git checkout 224-bumblebee
  3. From the ./Plugins/IntelliJ/ directory, run ./gradlew buildPlugin
  4. Or, you can download the pre-built plugin: Testify_IntelliJ_Plugin-0.1.2.zip
  5. Open the Preferences in Android Studio Bumblebee and select the Plugins section
  6. Select the ⚙️ Manage Repositories, Configure Proxy or Install Plugin from Disk
  7. Select Install plugin from disk
  8. Browse to ./android-testify/Plugins/IntelliJ/build/distributions and select Testify IntelliJ Plugin-0.1.2.zip.

Verify that version 0.1.2 is loaded and that the plugin works correctly.

https://user-images.githubusercontent.com/5921367/133463097-fb84fc36-7910-4668-b0cc-694d6769f84a.mp4

Notice

This change must keep master in a shippable state; it may be shipped without further notice.

DanielJette commented 3 years ago

https://youtrack.jetbrains.com/issue/IDEA-266993?_ga=2.168150244.418066144.1629749561-1643195088.1611254433

Exception occurs in the plugin:

java.lang.Throwable: Assertion failed: dataContext has no component for new ListPopupStep
    at com.intellij.openapi.diagnostic.Logger.assertTrue(Logger.java:197)
    at com.intellij.ui.popup.PopupFactoryImpl$ActionGroupPopup.createStep(PopupFactoryImpl.java:275)
    at com.intellij.ui.popup.PopupFactoryImpl$ActionGroupPopup.<init>(PopupFactoryImpl.java:216)
    at com.intellij.ui.popup.PopupFactoryImpl$ActionGroupPopup.<init>(PopupFactoryImpl.java:183)
    at com.intellij.ui.popup.PopupFactoryImpl.createActionGroupPopup(PopupFactoryImpl.java:358)
    at com.intellij.openapi.ui.popup.JBPopupFactory.createActionGroupPopup(JBPopupFactory.java:318)
    at com.intellij.openapi.ui.popup.JBPopupFactory.createActionGroupPopup(JBPopupFactory.java:328)
    at com.shopify.testify.extensions.ScreenshotInstrumentationAnnotationNavHandler.createActionGroupPopup(ScreenshotInstrumentationAnnotationNavHandler.kt:80)
    at com.shopify.testify.extensions.ScreenshotInstrumentationAnnotationNavHandler.navigate(ScreenshotInstrumentationAnnotationNavHandler.kt:62)
    at com.intellij.codeInsight.daemon.NavigateAction.actionPerformed(NavigateAction.java:62)
    at com.intellij.openapi.actionSystem.ex.ActionUtil.lambda$performActionDumbAware$5(ActionUtil.java:273)
    at com.intellij.util.SlowOperations.lambda$allowSlowOperations$0(SlowOperations.java:77)
    at com.intellij.util.SlowOperations.allowSlowOperations(SlowOperations.java:64)
    at com.intellij.util.SlowOperations.allowSlowOperations(SlowOperations.java:76)
    at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:273)
    at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAwareWithCallbacks(ActionUtil.java:267)
    at com.intellij.openapi.editor.impl.EditorGutterComponentImpl.performAction(EditorGutterComponentImpl.java:1947)
    at com.intellij.openapi.editor.impl.EditorGutterComponentImpl.mouseReleased(EditorGutterComponentImpl.java:1906)
    at com.intellij.openapi.editor.impl.EditorImpl.processMouseReleased(EditorImpl.java:2331)
    at com.intellij.openapi.editor.impl.EditorImpl$MyMouseAdapter.lambda$runMouseReleasedCommand$1(EditorImpl.java:3915)
    at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:216)
    at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:172)
    at com.intellij.openapi.editor.impl.EditorImpl$MyMouseAdapter.runMouseReleasedCommand(EditorImpl.java:3917)
    at com.intellij.openapi.editor.impl.EditorImpl$MyMouseAdapter.mouseReleased(EditorImpl.java:3794)
    at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:298)
    at java.desktop/java.awt.Component.processMouseEvent(Component.java:6652)
    at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3345)
    at java.desktop/java.awt.Component.processEvent(Component.java:6417)
    at java.desktop/java.awt.Container.processEvent(Container.java:2263)
    at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5027)
    at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
    at java.desktop/java.awt.Component.dispatchEvent(Component.java:4859)
    at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918)
    at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4547)
    at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488)
    at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
    at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2784)
    at java.desktop/java.awt.Component.dispatchEvent(Component.java:4859)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:778)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
    at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:751)
    at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:749)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:748)
    at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:969)
    at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.java:906)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:836)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:449)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:808)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$9(IdeEventQueue.java:448)
    at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:787)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:502)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
DanielJette commented 3 years ago

The actions also do not work. Clicking on any menu item fails

DanielJette commented 2 years ago

Also backwards compatible with Arctic Fox image