Skip to content

Commit 9d2f01f

Browse files
Merge pull request #549 from Instabug/ci/fix-user-step
fix: e2e CI jobs
2 parents 02e968a + 11405ea commit 9d2f01f

File tree

12 files changed

+331
-82
lines changed

12 files changed

+331
-82
lines changed

.circleci/config.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ jobs:
237237
- setup_flutter
238238
- android/start-emulator-and-run-tests:
239239
run-tests-working-directory: e2e
240-
additional-avd-args: --device 3
240+
additional-avd-args: --device 25
241241
system-image: system-images;android-33;default;x86_64
242242
post-emulator-launch-assemble-command: cd packages/instabug_flutter/example && flutter build apk --debug
243243
test-command: dotnet test

e2e/BugReportingTests.cs

Lines changed: 59 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
using System.Drawing;
21
using E2E.Utils;
32
using Xunit;
43
using Instabug.Captain;
54

65
using NoSuchElementException = OpenQA.Selenium.NoSuchElementException;
6+
using System.Drawing;
77

88
namespace E2E;
99

@@ -46,6 +46,9 @@ public void ReportABug()
4646
[Fact]
4747
public void FloatingButtonInvocationEvent()
4848
{
49+
50+
Console.WriteLine("FloatingButtonInvocationEvent");
51+
4952
captain.FindById(
5053
android: "instabug_floating_button",
5154
ios: "IBGFloatingButtonAccessibilityIdentifier"
@@ -57,11 +60,13 @@ public void FloatingButtonInvocationEvent()
5760
[Fact]
5861
public void ShakeInvocationEvent()
5962
{
63+
64+
Console.WriteLine("ShakeInvocationEvent");
65+
6066
if (!Platform.IsIOS) return;
6167

6268

63-
ScrollUp();
64-
captain.FindByText("Shake").Tap();
69+
captain.FindByTextScroll("Shake").Tap();
6570

6671
captain.Shake();
6772

@@ -71,10 +76,12 @@ public void ShakeInvocationEvent()
7176
[Fact]
7277
public void TwoFingersSwipeLeftInvocationEvent()
7378
{
74-
if (!Platform.IsIOS){
75-
ScrollUp();
76-
}
77-
captain.FindByText("Two Fingers Swipe Left").Tap();
79+
80+
Console.WriteLine("TwoFingersSwipeLeftInvocationEvent");
81+
82+
83+
84+
captain.FindByTextScroll("Two Fingers Swipe Left").Tap();
7885

7986
Thread.Sleep(500);
8087

@@ -93,7 +100,11 @@ public void TwoFingersSwipeLeftInvocationEvent()
93100
[Fact]
94101
public void NoneInvocationEvent()
95102
{
96-
captain.FindByText("None").Tap();
103+
104+
Console.WriteLine("NoneInvocationEvent");
105+
106+
107+
captain.FindByTextScroll("None").Tap();
97108

98109
captain.WaitForAssertion(() =>
99110
Assert.Throws<NoSuchElementException>(() =>
@@ -109,22 +120,38 @@ public void NoneInvocationEvent()
109120
[Fact]
110121
public void ManualInvocation()
111122
{
112-
captain.FindByText("Invoke").Tap();
123+
124+
125+
Console.WriteLine("ManualInvocation");
126+
127+
128+
129+
captain.FindByTextScroll("Invoke").Tap();
113130

114131
AssertOptionsPromptIsDisplayed();
115132
}
116133

117134
[Fact]
118135
public void MultipleScreenshotsInReproSteps()
119136
{
120-
Dispose();
121-
ScrollDownLittle();
122-
captain.FindByText("Enter screen name").Tap();
137+
138+
139+
Console.WriteLine("MultipleScreenshotsInReproSteps");
140+
141+
142+
143+
144+
captain.FindByTextScroll("Enter screen name").Tap();
123145
captain.Type("My Screen");
124146
captain.HideKeyboard();
125147

126-
captain.FindByText("Report Screen Change").Tap();
127-
captain.FindByText("Send Bug Report").Tap();
148+
captain.HideKeyboard();
149+
Thread.Sleep(500);
150+
151+
captain.FindByTextScroll("Report Screen Change")?.Tap();
152+
Thread.Sleep(500);
153+
captain.FindByTextScroll("Send Bug Report")?.Tap();
154+
128155
captain.FindById(
129156
android: "instabug_text_view_repro_steps_disclaimer",
130157
ios: "IBGBugVCReproStepsDisclaimerAccessibilityIdentifier"
@@ -140,27 +167,30 @@ public void MultipleScreenshotsInReproSteps()
140167
[Fact(Skip = "The test is flaky on iOS so we're skipping it to unblock the v13.2.0 release")]
141168
public void ChangeReportTypes()
142169
{
143-
ScrollUp();
144-
captain.FindByText("Bug", exact: true).Tap();
170+
171+
Console.WriteLine("ChangeReportTypes");
172+
173+
174+
captain.FindByTextScroll("Bug", exact: true).Tap();
145175

146176
if (Platform.IsAndroid)
147177
{
148-
captain.FindByText("Invoke").Tap();
178+
captain.FindByTextScroll("Invoke").Tap();
149179

150180
// Shows bug reporting screen
151181
Assert.True(captain.FindById("ib_bug_scroll_view").Displayed);
152182

153183
// Close bug reporting screen
154184
captain.GoBack();
155-
captain.FindByText("DISCARD").Tap();
185+
captain.FindByTextScroll("DISCARD").Tap();
156186

157187
Thread.Sleep(500);
158188

159189
}
160190

161-
captain.FindByText("Feedback").Tap();
191+
captain.FindByTextScroll("Feedback").Tap();
162192

163-
captain.FindByText("Invoke").Tap();
193+
captain.FindByTextScroll("Invoke").Tap();
164194

165195
// Shows both bug reporting and feature requests in prompt options
166196
AssertOptionsPromptIsDisplayed();
@@ -173,10 +203,12 @@ public void ChangeReportTypes()
173203
[Fact]
174204
public void ChangeFloatingButtonEdge()
175205
{
176-
ScrollDown();
177-
captain.FindByText("Move Floating Button to Left").Tap();
178206

179-
Thread.Sleep(500);
207+
Console.WriteLine("ChangeFloatingButtonEdge");
208+
209+
210+
captain.FindByTextScroll("Move Floating Button to Left",false,false)?.Tap();
211+
180212

181213
captain.WaitForAssertion(() =>
182214
{
@@ -193,16 +225,16 @@ public void ChangeFloatingButtonEdge()
193225
[Fact]
194226
public void OnDismissCallbackIsCalled()
195227
{
196-
ScrollDownLittle();
197228

198-
captain.FindByText("Set On Dismiss Callback").Tap();
199-
captain.FindByText("Invoke").Tap();
229+
captain.FindByTextScroll("Set On Dismiss Callback",false,false).Tap();
230+
captain.FindByTextScroll("Invoke",false,false).Tap();
200231

201232
AssertOptionsPromptIsDisplayed();
202233

203-
captain.FindByText("Cancel").Tap();
234+
captain.FindByTextScroll("Cancel").Tap();
204235

205236
var popUpText = captain.FindByText("onDismiss callback called with DismissType.cancel and ReportType.other");
206237
Assert.True(popUpText.Displayed);
238+
207239
}
208240
}

e2e/FeatureRequestsTests.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ public class FeatureRequestsTests : CaptainTest
1010
[Fact]
1111
public void ShowFeatureRequetsScreen()
1212
{
13-
ScrollDown();
14-
ScrollDown();
1513

16-
captain.FindByText("Show Feature Requests").Tap();
14+
Console.WriteLine("ShowFeatureRequetsScreen");
15+
16+
captain.FindByTextScroll("Show Feature Requests",false,false).Tap();
1717

1818
var screenTitle = captain.FindById(
1919
android: "ib_fr_toolbar_main",

e2e/InstabugTests.cs

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,21 +11,16 @@ public class InstabugTests : CaptainTest
1111
[Fact]
1212
public void ChangePrimaryColor()
1313
{
14-
ScrollUp();
15-
ScrollUp();
16-
ScrollUp();
17-
ScrollUp();
18-
ScrollUp();
19-
ScrollUp();
14+
Console.WriteLine("ChangePrimaryColor");
2015

2116
var color = "#FF0000";
2217
var expected = Color.FromArgb(255, 0, 0);
2318

24-
captain.FindByText("Enter primary color").Tap();
19+
captain.FindByTextScroll("Enter primary color").Tap();
2520
captain.Type(color);
2621
captain.HideKeyboard();
2722

28-
captain.FindByText("Change Primary Color").Tap();
23+
captain.FindByTextScroll("Change Primary Color").Tap();
2924

3025
captain.WaitForAssertion(() =>
3126
{

e2e/SurveysTests.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,9 @@ public class SurveysTests : CaptainTest
1010
[Fact]
1111
public void ShowManualSurvey()
1212
{
13-
ScrollDownLittle();
14-
captain.FindByText("Show Manual Survey").Tap();
13+
Console.WriteLine("ShowManualSurvey");
14+
15+
captain.FindByTextScroll("Show Manual Survey",false,false).Tap();
1516

1617
captain.WaitForAssertion(() =>
1718
{

e2e/Utils/CaptainTest.cs

Lines changed: 3 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
using System.Drawing;
22
using Instabug.Captain;
3+
using OpenQA.Selenium;
4+
using OpenQA.Selenium.Appium.MultiTouch;
35

46
namespace E2E.Utils;
57

@@ -10,6 +12,7 @@ public class CaptainTest : IDisposable
1012
AndroidApp = Path.GetFullPath("../../../../packages/instabug_flutter/example/build/app/outputs/flutter-apk/app-debug.apk"),
1113
AndroidAppId = "com.instabug.flutter.example",
1214
AndroidVersion = "13",
15+
1316
IosApp = Path.GetFullPath("../../../../packages/instabug_flutter/example/build/ios/iphonesimulator/Runner.app"),
1417
IosAppId = "com.instabug.InstabugSample",
1518
IosVersion = "17.2",
@@ -28,28 +31,5 @@ public void Dispose()
2831
captain.RestartApp();
2932
}
3033

31-
protected void ScrollDown()
32-
{
33-
captain.Swipe(
34-
start: new Point(captain.Window.Size.Width / 2, captain.Window.Size.Height - 200),
35-
end: new Point(captain.Window.Size.Width / 2, 300)
36-
);
37-
}
3834

39-
40-
protected void ScrollDownLittle()
41-
{
42-
captain.Swipe(
43-
start: new Point(captain.Window.Size.Width / 2, captain.Window.Size.Height - 200),
44-
end: new Point(captain.Window.Size.Width / 2, captain.Window.Size.Height - 250)
45-
);
46-
}
47-
48-
protected void ScrollUp()
49-
{
50-
captain.Swipe(
51-
start: new Point(captain.Window.Size.Width / 2, 300),
52-
end: new Point(captain.Window.Size.Width / 2, captain.Window.Size.Height - 200)
53-
);
54-
}
5535
}

packages/instabug_flutter/android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ android {
5151
}
5252

5353
dependencies {
54-
api 'com.instabug.library:instabug:14.2.0.6611053-SNAPSHOT'
54+
api 'com.instabug.library:instabug:14.2.0.6611388-SNAPSHOT'
5555

5656
testImplementation 'junit:junit:4.13.2'
5757
testImplementation "org.mockito:mockito-inline:3.12.1"

packages/instabug_flutter/example/ios/Runner.xcodeproj/project.pbxproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -567,7 +567,7 @@
567567
"$(inherited)",
568568
"$(PROJECT_DIR)/Flutter",
569569
);
570-
PRODUCT_BUNDLE_IDENTIFIER = com.instabug.InstabugSample2;
570+
PRODUCT_BUNDLE_IDENTIFIER = com.instabug.InstabugSample;
571571
PRODUCT_NAME = "$(TARGET_NAME)";
572572
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
573573
SWIFT_VERSION = 5.0;
@@ -706,7 +706,7 @@
706706
"$(inherited)",
707707
"$(PROJECT_DIR)/Flutter",
708708
);
709-
PRODUCT_BUNDLE_IDENTIFIER = com.instabug.InstabugSample2;
709+
PRODUCT_BUNDLE_IDENTIFIER = com.instabug.InstabugSample;
710710
PRODUCT_NAME = "$(TARGET_NAME)";
711711
PROVISIONING_PROFILE_SPECIFIER = "";
712712
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
@@ -738,7 +738,7 @@
738738
"$(inherited)",
739739
"$(PROJECT_DIR)/Flutter",
740740
);
741-
PRODUCT_BUNDLE_IDENTIFIER = com.instabug.InstabugSample2;
741+
PRODUCT_BUNDLE_IDENTIFIER = com.instabug.InstabugSample;
742742
PRODUCT_NAME = "$(TARGET_NAME)";
743743
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
744744
SWIFT_VERSION = 5.0;

packages/instabug_flutter/example/lib/main.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,9 @@ void main() {
4949
debugLogsLevel: LogLevel.none,
5050
);
5151

52+
Instabug.setWelcomeMessageMode(WelcomeMessageMode.disabled);
53+
54+
5255
FlutterError.onError = (FlutterErrorDetails details) {
5356
Zone.current.handleUncaughtError(details.exception, details.stack!);
5457
};

packages/instabug_private_views/android/src/main/java/com/instabug/instabug_private_views/modules/PrivateViewManager.java

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -121,19 +121,23 @@ private void processScreenshot(ScreenshotResult result, AtomicReference<List<Dou
121121

122122
@VisibleForTesting
123123
public void maskPrivateViews(ScreenshotResult result, List<Double> privateViews) {
124-
if (privateViews == null || privateViews.isEmpty()) return;
125-
126-
Bitmap bitmap = result.getScreenshot();
127-
float pixelRatio = result.getPixelRatio();
128-
Canvas canvas = new Canvas(bitmap);
129-
Paint paint = new Paint(); // Default color is black
130-
131-
for (int i = 0; i < privateViews.size(); i += 4) {
132-
float left = privateViews.get(i).floatValue() * pixelRatio;
133-
float top = privateViews.get(i + 1).floatValue() * pixelRatio;
134-
float right = privateViews.get(i + 2).floatValue() * pixelRatio;
135-
float bottom = privateViews.get(i + 3).floatValue() * pixelRatio;
136-
canvas.drawRect(left, top, right, bottom, paint); // Mask private view
124+
try {
125+
if (privateViews == null || privateViews.isEmpty()) return;
126+
127+
Bitmap bitmap = result.getScreenshot();
128+
float pixelRatio = result.getPixelRatio();
129+
Canvas canvas = new Canvas(bitmap);
130+
Paint paint = new Paint(); // Default color is black
131+
132+
for (int i = 0; i < privateViews.size(); i += 4) {
133+
float left = privateViews.get(i).floatValue() * pixelRatio;
134+
float top = privateViews.get(i + 1).floatValue() * pixelRatio;
135+
float right = privateViews.get(i + 2).floatValue() * pixelRatio;
136+
float bottom = privateViews.get(i + 3).floatValue() * pixelRatio;
137+
canvas.drawRect(left, top, right, bottom, paint); // Mask private view
138+
}
139+
} catch (Exception e){
140+
e.printStackTrace();
137141
}
138142
}
139143
}

packages/instabug_private_views/example/lib/main.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ void main() {
2222
};
2323

2424
enableInstabugMaskingPrivateViews();
25-
runApp(const PrivateViewPage());
25+
runApp(const InstabugUserSteps(child:PrivateViewPage()));
2626
},
2727
CrashReporting.reportCrash,
2828
);

0 commit comments

Comments
 (0)