Skip to content

Conversation

@Ayyanchira
Copy link
Member

@Ayyanchira Ayyanchira commented Jan 22, 2026

🔹 Jira Ticket(s) if any

✏️ Description

Implements Deeplinking to invoke app from outside and invoking sdk's handler methods

Implements Deeplinking to invoke app from outside and invoking sdk's handler methods
}

private fun handleIntent(intent: Intent) {
Log.d(TAG, "handleIntent: action=${intent.action}, data=${intent.data}")

Check failure

Code scanning / CodeQL

Log Injection High test

This log entry depends on a
user-provided value
.
Copy link
Member Author

@Ayyanchira Ayyanchira left a comment

Choose a reason for hiding this comment

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

Initial pass given. Tested locally and verified working. Now checking on CI

Comment on lines +49 to +54
private lateinit var tvHeader: TextView
private lateinit var tvUrl: TextView
private lateinit var tvPath: TextView
private lateinit var tvHost: TextView
private lateinit var tvScheme: TextView
private lateinit var tvStatus: TextView
Copy link
Member Author

Choose a reason for hiding this comment

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

Not sure why there is a tv prefix

Copy link
Member Author

Choose a reason for hiding this comment

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

Not sure how autoverify doesnt check existence of assetlinks and could still open the app during testing. Perhaps not having other apps contesting for it is the reason

@Ayyanchira
Copy link
Member Author

Deeplink.BCIT.on.Android.mov

Copy link
Member

@joaodordio joaodordio left a comment

Choose a reason for hiding this comment

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

Left one comment for us to discuss but looking good!

@franco-zalamena-iterable

Question about integration test

These tests are thorough but I'm wondering about the cost/benefit. Integration tests are great for proving the system works end-to-end, but they're slow and harder to maintain than unit tests. Working in the flaky tests and everything made me even more skeptical of them.

What if we:

  • Keep 1-2 integration tests for critical paths (App Links working, custom scheme working)
  • Move the edge case testing to unit tests (different redirect codes, cookie parsing, error handling, etc)
    The SDK logic in IterableDeeplinkManager is already testable with MockWebServer, we'd get the same coverage but tests would run 100x faster and be easier to debug.

Integration tests could fill gaps where we can't unit test yet (DI issues, Android framework dependencies). For pure logic, unit tests can be better.

@Ayyanchira
Copy link
Member Author

Ayyanchira commented Jan 28, 2026

@franco-zalamena-iterable Those are some really great points. Infact the idea of integration test is to cover certain basic flow of the core functionality of what the SDK offers.
Test cases can cover individual small cases for Deeplinking. But app behavior of what happens when link when is triggered from outside the app? -> remains something which is dependent on external like factors (however I agree even that can be a unit test). Thats why an end to end setup.

I believe Deeplink covers a lot outside of SDK's scope which also gets tested although that use case is still not covered here. (example - a travel app website on chrome showing open app while on the cart page, and it leading to cart page in the app can only happen if universal links are setup correctly at domain level) This kind of testing is what the goal is for the project BCIT (business critical integration test)

@Ayyanchira
Copy link
Member Author

Integration tests could fill gaps where we can't unit test yet (DI issues, Android framework dependencies). For pure logic, unit tests can be better.

And totally agree this

…/activities/DeepLinkTestActivity.kt


This totally makes sense. Create a dictionary and make a json out of it? while you can make a json and fill it? 🤦‍♂️

Co-authored-by: Joao Dordio <joaodordio@icloud.com>
@Ayyanchira Ayyanchira requested a review from joaodordio January 28, 2026 22:34
Copy link
Member

@joaodordio joaodordio left a comment

Choose a reason for hiding this comment

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

LGTM!

@Ayyanchira Ayyanchira merged commit f49e5ea into master Jan 29, 2026
5 of 8 checks passed
@Ayyanchira Ayyanchira deleted the wip/SDK-18-BCIT-Deeplinking branch January 29, 2026 18:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants