Skip to content
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

Alessandro/onboarding add to dock experiment setup #3679

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 0 additions & 29 deletions .maestro/onboarding_tests/01_control_group_onboarding.yaml

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ tags:
file: ../shared/setup.yaml
env:
ONBOARDING_COMPLETED: "false"
APP_VARIANT: "mb"
APP_VARIANT: "mh"

# Handle Search Suggestions
- assertVisible: "Ready to get started?\nTry a search!"
Expand Down Expand Up @@ -50,3 +50,4 @@ tags:
- assertVisible: "You’ve got this!"
- assertVisible: "High five!"
- tapOn: "High five!"

33 changes: 0 additions & 33 deletions .maestro/onboarding_tests/02_control_group_hide_onboarding.yaml

This file was deleted.

54 changes: 54 additions & 0 deletions .maestro/onboarding_tests/02_onboarding_add_to_dock_intro.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
appId: com.duckduckgo.mobile.ios
tags:
- onboarding

---

# Set up
- runFlow:
file: ../shared/setup.yaml
env:
ONBOARDING_COMPLETED: "false"
APP_VARIANT: "mk"

# Handle Search Suggestions
- assertVisible: "Ready to get started?\nTry a search!"
- assertVisible: "Surprise Me!"
- tapOn: "Surprise Me!"

# Handle First Dax Dialog
- assertVisible: "That’s DuckDuckGo Search. Private. Fast. Fewer ads."
- assertVisible: "Got It!"
- tapOn: "Got It!"

# Handle Site Suggestions
- assertVisible: "Next, try visiting a site!"
- assertVisible: "Surprise Me!"
- tapOn: "Surprise Me!"

# Handle Privacy Dashboard
- assertVisible: "Got It!"
- tapOn:
point: "6%,10%" # Shield icon.
- assertVisible:
text: "View Tracker Companies"
- assertVisible:
text: "Done"
- tapOn: "Done"

# Handle Fire Message
- assertVisible: "Got It!"
- tapOn: "Got It!"
- assertVisible: "Instantly clear your browsing activity with the Fire Button.\n\nGive it a try! 🔥"

# Handle Fire Button
- assertVisible: "Close Tabs and Clear Data"
- tapOn: "Close Tabs and Clear Data"
- tapOn: "Close Tabs and Clear Data"

# Handle End of Journey Dialog
- assertVisible: "You’ve got this!"
- assertVisible: "High five!"
- tapOn: "High five!"


Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
appId: com.duckduckgo.mobile.ios
tags:
- onboarding

---

# Set up
- runFlow:
file: ../shared/setup.yaml
env:
ONBOARDING_COMPLETED: "false"
APP_VARIANT: "mo"

# Handle Search Suggestions
- assertVisible: "Ready to get started?\nTry a search!"
- assertVisible: "Surprise Me!"
- tapOn: "Surprise Me!"

# Handle First Dax Dialog
- assertVisible: "That’s DuckDuckGo Search. Private. Fast. Fewer ads."
- assertVisible: "Got It!"
- tapOn: "Got It!"

# Handle Site Suggestions
- assertVisible: "Next, try visiting a site!"
- assertVisible: "Surprise Me!"
- tapOn: "Surprise Me!"

# Handle Privacy Dashboard
- assertVisible: "Got It!"
- tapOn:
point: "6%,10%" # Shield icon.
- assertVisible:
text: "View Tracker Companies"
- assertVisible:
text: "Done"
- tapOn: "Done"

# Handle Fire Message
- assertVisible: "Got It!"
- tapOn: "Got It!"
- assertVisible: "Instantly clear your browsing activity with the Fire Button.\n\nGive it a try! 🔥"

# Handle Fire Button
- assertVisible: "Close Tabs and Clear Data"
- tapOn: "Close Tabs and Clear Data"
- tapOn: "Close Tabs and Clear Data"

# Handle End of Journey Dialog
- assertVisible: "Add me to your Dock!"
- assertVisible: "Show Me How"
- tapOn: "Start Browsing"


23 changes: 15 additions & 8 deletions .maestro/shared/onboarding.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,24 @@ appId: com.duckduckgo.mobile.ios
text: "Let’s Do It!"
index: 0

# Disabled while UI testing is happening
# - assertVisible: "Make DuckDuckGo your default browser."
# Browser comparison chart
# - assertVisible: "Protections activated!"
- tapOn:
text: "Skip"

# Add To Dock Flow
- runFlow:
when:
visible: "Which color looks best on me?"
visible: "Add me to your Dock!"
commands:
- assertVisible: "Next"
- tapOn: "Next"
- assertVisible: "Where should I put your address bar?"
- assertVisible: "Next"
- tapOn: "Next"
- assertVisible: "Show Me How"
- tapOn: "Skip"

# Customization Flow

- assertVisible: "Which color looks best on me?"
- assertVisible: "Next"
- tapOn: "Next"
- assertVisible: "Where should I put your address bar?"
- assertVisible: "Next"
- tapOn: "Next"
11 changes: 5 additions & 6 deletions Core/DefaultVariantManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,8 @@ extension FeatureName {
// Define your feature e.g.:
// public static let experimentalFeature = FeatureName(rawValue: "experimentalFeature")

public static let newOnboardingIntro = FeatureName(rawValue: "newOnboardingIntro")
public static let newOnboardingIntroHighlights = FeatureName(rawValue: "newOnboardingIntroHighlights")
public static let contextualDaxDialogs = FeatureName(rawValue: "contextualDaxDialogs")
public static let addToDockIntro = FeatureName(rawValue: "addToDockIntro")
public static let addToDockContextual = FeatureName(rawValue: "addToDockContextual")
}

public struct VariantIOS: Variant {
Expand Down Expand Up @@ -58,9 +57,9 @@ public struct VariantIOS: Variant {
VariantIOS(name: "sd", weight: doNotAllocate, isIncluded: When.always, features: []),
VariantIOS(name: "se", weight: doNotAllocate, isIncluded: When.always, features: []),

VariantIOS(name: "ms", weight: 1, isIncluded: When.always, features: [.newOnboardingIntro]),
VariantIOS(name: "mu", weight: 1, isIncluded: When.always, features: [.newOnboardingIntro, .contextualDaxDialogs]),
VariantIOS(name: "mx", weight: 1, isIncluded: When.always, features: [.newOnboardingIntroHighlights, .contextualDaxDialogs]),
VariantIOS(name: "mh", weight: 1, isIncluded: When.notPadDevice, features: []),
VariantIOS(name: "mk", weight: 1, isIncluded: When.notPadDevice, features: [.addToDockIntro]),
VariantIOS(name: "mo", weight: 1, isIncluded: When.notPadDevice, features: [.addToDockContextual]),

returningUser
]
Expand Down
8 changes: 0 additions & 8 deletions DuckDuckGo.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -738,8 +738,6 @@
98F3A1D8217B37010011A0D4 /* Theme.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98F3A1D7217B37010011A0D4 /* Theme.swift */; };
98F6EA472863124100720957 /* ContentBlockerRulesLists.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98F6EA462863124100720957 /* ContentBlockerRulesLists.swift */; };
98F78B8E22419093007CACF4 /* ThemableNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98F78B8D22419093007CACF4 /* ThemableNavigationController.swift */; };
9F1061652C9C013F008DD5A0 /* DefaultVariantManager+Onboarding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F1061642C9C013F008DD5A0 /* DefaultVariantManager+Onboarding.swift */; };
9F1623092C9D14F10093C4FC /* DefaultVariantManagerOnboardingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F1623082C9D14F10093C4FC /* DefaultVariantManagerOnboardingTests.swift */; };
9F16230B2CA0F0190093C4FC /* DebouncerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F16230A2CA0F0190093C4FC /* DebouncerTests.swift */; };
9F1798572CD2443F0073018B /* AddToDockPromoViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F1798562CD2443F0073018B /* AddToDockPromoViewModelTests.swift */; };
9F23B8012C2BC94400950875 /* OnboardingBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F23B8002C2BC94400950875 /* OnboardingBackground.swift */; };
Expand Down Expand Up @@ -2577,8 +2575,6 @@
98F3A1D7217B37010011A0D4 /* Theme.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Theme.swift; sourceTree = "<group>"; };
98F6EA462863124100720957 /* ContentBlockerRulesLists.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContentBlockerRulesLists.swift; sourceTree = "<group>"; };
98F78B8D22419093007CACF4 /* ThemableNavigationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemableNavigationController.swift; sourceTree = "<group>"; };
9F1061642C9C013F008DD5A0 /* DefaultVariantManager+Onboarding.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "DefaultVariantManager+Onboarding.swift"; sourceTree = "<group>"; };
9F1623082C9D14F10093C4FC /* DefaultVariantManagerOnboardingTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DefaultVariantManagerOnboardingTests.swift; sourceTree = "<group>"; };
9F16230A2CA0F0190093C4FC /* DebouncerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DebouncerTests.swift; sourceTree = "<group>"; };
9F1798562CD2443F0073018B /* AddToDockPromoViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddToDockPromoViewModelTests.swift; sourceTree = "<group>"; };
9F23B8002C2BC94400950875 /* OnboardingBackground.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingBackground.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -4914,7 +4910,6 @@
9F7CFF7C2C89B69A0012833E /* AppIconPickerViewModelTests.swift */,
9FDEC7B32C8FD62F00C7A692 /* OnboardingAddressBarPositionPickerViewModelTests.swift */,
9FDEC7B92C9006E000C7A692 /* BrowserComparisonModelTests.swift */,
9F1623082C9D14F10093C4FC /* DefaultVariantManagerOnboardingTests.swift */,
9F8E0F322CCA642D001EA7C5 /* VideoPlayerViewModelTests.swift */,
9F1798562CD2443F0073018B /* AddToDockPromoViewModelTests.swift */,
);
Expand Down Expand Up @@ -5074,7 +5069,6 @@
9F23B7FF2C2BABE000950875 /* OnboardingIntro */,
9F5E5AAA2C3D0FAA00165F54 /* ContextualOnboarding */,
9FCFCD842C75C91A006EB7A0 /* ProgressBarView.swift */,
9F1061642C9C013F008DD5A0 /* DefaultVariantManager+Onboarding.swift */,
);
path = OnboardingExperiment;
sourceTree = "<group>";
Expand Down Expand Up @@ -7689,7 +7683,6 @@
6FBF0F8B2BD7C0A900136CF0 /* AllProtectedCell.swift in Sources */,
9F4CC5242C4A4F0D006A96EB /* SwiftUITestUtilities.swift in Sources */,
6FDC64032C92F4D600DB71B3 /* NewTabPageSettingsPersistentStore.swift in Sources */,
9F1061652C9C013F008DD5A0 /* DefaultVariantManager+Onboarding.swift in Sources */,
1E4F4A5A297193DE00625985 /* MainViewController+CookiesManaged.swift in Sources */,
C12324C32C4697C900FBB26B /* AutofillBreakageReportTableViewCell.swift in Sources */,
8586A10D24CBA7070049720E /* FindInPageActivity.swift in Sources */,
Expand Down Expand Up @@ -8226,7 +8219,6 @@
987130C7294AAB9F00AB05E0 /* MenuBookmarksViewModelTests.swift in Sources */,
D6B9E8D42CDA8375002B640C /* DuckPlayerOverlayUsagePixelsTests.swift in Sources */,
858650D32469BFAD00C36F8A /* DaxDialogTests.swift in Sources */,
9F1623092C9D14F10093C4FC /* DefaultVariantManagerOnboardingTests.swift in Sources */,
31C138B227A4097800FFD4B2 /* DownloadTestsHelper.swift in Sources */,
1E1D8B5D2994FFE100C96994 /* AutoconsentMessageProtocolTests.swift in Sources */,
85C11E532090B23A00BFFEB4 /* UserDefaultsHomeRowReminderStorageTests.swift in Sources */,
Expand Down
Loading
Loading