adobe / aepsdk-edge-android Goto Github PK
View Code? Open in Web Editor NEWAdobe Experience Platform Edge Network mobile extension in Android
License: Apache License 2.0
Adobe Experience Platform Edge Network mobile extension in Android
License: Apache License 2.0
For the test NetworkService update the workflow for integration testing, similar to the iOS implementation:
No response
Scope:
AEPTestUtils
framework as a test dependency to Edge extensionsAEPTestUtils
Mock
/RealNetworkService
from AEPTestUtils
This applies for all existing tests for Edge extensions: unit, functional, integration.
Release latest fixes and feature support for request complete event
Provide staging build for messaging SDK integration testing
Includes release validation and publishing of the new library
No response
Dod:
No response
Include params:
Update the makefile and internal test framework code to read these values. These values should be passed in as test run params, without file modifications.
No response
No response
Linked to adobe/aepsdk-edge-ios#411
We want to provide the:
For general availability to other extensions to use in their own test suites. Investigate what is required for publishing as a separate module from the base Edge extension itself (like AEPServices from AEPCore)
Since the use case is for testing only, the size of the module itself is not as much of a concern
No response
Currently the JSON comparison assertion public APIs are too permissive where they allow for any incoming types:
An immediate solution could be only allowing JSONObject
== JSONObject
and JSONArray
== JSONArray
comparisons as the API param types
A future looking solution could be something like creating a sealed class (that works like a union type) that can create a better type interface for mixing and matching types, especially if the feature of allowing custom validation start point paths is implemented
No response
Enabling the ability to specify a custom starting point in the actual
side JSON hierarchy will allow test writers to make the testing intent more clear:
actual
JSON does not have to be manipulatedexpected
JSON does not need wrapper containers to match the hierarchy of actual
This supports the use case of test case validation that is only interested in a specific child node in the JSON hierarchy onwards. With the change, the user no longer has to maintain the JSON hierarchy outside of what they actually want to validate
For example, in the current system given
actual
{
"level1": {
"level2": {
"level3": 3
}
},
"key1": 1,
"key2": 2
}
your expected
would have to be:
{
"level1": {
"level2": {
"level3": 3
}
}
}
With this new proposal, it could be:
actualStartPath: "level1.level2"
+
{
"level3": 3
}
No response
Context:
There can be use-cases where an extension handles a certain event which generates an experience event and we should have a way to connect the two events together, especially for debugging and representation in Assurance. One use-case is having an Analytics generic event triggering an experience event, another can be the Edge request-response pairing.
Requires: adobe/aepsdk-core-android#436
Implementation details:
Add the @Jvmoverloads
annotation to the public APIs for Java usage compatibility with parameter default values
No response
No response
Release Edge v2.1.0
Linked to adobe/aepsdk-edge-ios#406
The two main options are:
Approaches for each case, in the given scenarios
No response
No response
Linked to adobe/aepsdk-edge-ios#410
Update the integration test workflow for resilience when running very frequently, and to only emit errors when true test case errors are encountered, not in cases like:
Will need to test when run very frequently (maybe on some cron schedule?)
No response
No response
Add support for extensions to overwrite path for edge requests.
Check for custom path experience event data
Format:
"request": {
"path" : {custom path}
}
}
EdgeMedia Example:
"request": {
"path" : "va/v1/sessionStart"
}
}
Overwrite the path based on values found for path in the experience event data
Endpoint Format: https://edge.domain/ee/{custom path}
EdgeMedia Endpoint Example: https://edge.domain/ee/va/v1/sessionStart
Add necessary Unit and Functional test
Sample EdgeMedia Experience Event:
"id": "93D05BBC-E5E3-88AF-AECB-5B224BDC80C1",
"name": "EdgeMediaTrackExperienceEvent",
"type": "com.adobe.eventtype.edge",
"source": "com.adobe.eventsource.requestContent",
"data": {
"xdm" : {
"mediaCollection" : {
"sessionDetails" : {
"ID" : "bipbop",
"isDownloaded" : false
"channel": "EdgeMedia-iOS-channel",
"length": 1800,
"name": "Bip bop video",
"resume": false
"sdkVersion" : "v1.2.3",
"streamType" : "vod"
},
"playerEventDetails" : {
"playhead" : 1
}
},
"timestamp": "VideoEventTimeStamp"
}
"request" : {
"path" : "va/v1/sessionStart"
}
}
"timestamp": "2022-07-21 21:46:18 +0000",
"responseId": nil,
"mask": nil
]
Final path for corresponding Edge Request:
`https://edge.domain/ee/va/v1/sessionStart`
No response
No response
Set up cron for integration test workflow, similar to iOS setup:
https://github.com/adobe/aepsdk-edge-ios/blob/726f7b158a80fea0b827ceca5ddc9e71932689bf/.github/workflows/upstream-integration-test.yml#L10
Also, currently integration test workflow fails with outdated config:
https://github.com/timkimadobe/aepsdk-edge-android/actions/runs/9605855972/job/26494268311
Update config so that job runs with appropriate Android version etc
No response
The existing functional and integration tests should be refactored to use the newly available common test utilities available in: https://github.com/adobe/aepsdk-testutils-android
With the following items covered:
No response
For the assertions on event payloads, we need the ability to check the logical equivalence of JSON dictionaries, similar to the iOS framework capabilities:
Reuse existing tools where available in Core or current test framework.
No response
Create an automation framework library that can be shared across multiple mobile extensions.
Depending on the evaluation result on type of utilities used across extensions, support can include integration tests framework including advanced JSON comparison system, functional tests and/or unit tests utilities.
Port over full set of APIs from iOS.
Linked to adobe/aepsdk-edge-ios#407
In order to make integration test adoption as seamless as possible, we need to investigate barriers to adoption using the current workflow of GitHub Actions and challenges other teams may face
No response
Currently the "eventIndex" for event errors and event warnings in the interact response is expected to be a top-level field in an event error/warning object. However, Konductor defines the eventIndex in the "report" object, so Edge is looking in the wrong place for that field.
No response
Use the JSONUtils and MapUtils that were moved in Core and remove these helpers from Edge extension - ref adobe/aepsdk-core-android#328
Implement the test cases for the integration testing based on the test plan.
Implement a hybrid assertion testing strategy for validating the integration with the upstream:
No response
With streaming connections it's currently not possible to know if the current handle being processed is the final handle for a given request.
We'd like to optionally set a value in a request Event that will cause the Edge extension to dispatch an Event back to the event hub once the streaming connection has been closed for the same request.
No response
No response
No response
Currently integration test workflow fails with outdated config:
https://github.com/timkimadobe/aepsdk-edge-android/actions/runs/9605855972/job/26494268311
Update config so that job runs with appropriate Android version etc
No response
Linked to adobe/aepsdk-edge-ios#408
Need to investigate the use cases across extensions that depend on Edge Network extension, and see if it is sufficient for Edge Network extension to own all networking related integration testing cases. That is, the ones dealing with NetworkRequest
and HttpConnection
No response
Add integration testing workflow to staging and main PR check flow.
No response
Work with appropriate team to publish new test utils repo for Android
No response
Add testing support for Edge, Edge Identity, Consent APIs and Assurance integration with Kotlin.
See Java test app as an example.
Linked to adobe/aepsdk-edge-ios#409
Need to determine the per run cost of an integration test along the following metrics:
Currently GitHub Actions minimum spec runners for public repos is unlimited, but if this changes we need to be ready with the known cost implications
No response
Provide test app and update docs on using Edge.sendEvent API for path / view changes in pure Jetpack Compose apps.
Update Edge kotlin-app: the app should have multiple screens and should be implemented with Compose Screens and Navigation.
No response
In CI, some functional tests are marked as "flaky". Investigate and make the tests stable.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.