-
Notifications
You must be signed in to change notification settings - Fork 1.8k
feat(appcheck): implement RecaptchaEnterpriseProvider and tests #16155
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
Draft
ncooke3
wants to merge
32
commits into
main
Choose a base branch
from
nc/recaptcha-1
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Changes from 9 commits
Commits
Show all changes
32 commits
Select commit
Hold shift + click to select a range
33905d4
feat(appcheck): implement RecaptchaEnterpriseProvider and tests (#16150)
ncooke3 250212e
package.swift newline
ncooke3 5f894cb
fix(AppCheck): log error when siteKey is empty in provider init
ncooke3 0cee53b
tests: add manual e2e tests
ncooke3 8eecc10
feedback
ncooke3 b0e2039
review
ncooke3 0cbf732
update versions
ncooke3 bb35028
fixes and review
ncooke3 3c84e4a
Merge branch 'main' into nc/recaptcha-1
ncooke3 10ff653
fixes
ncooke3 c5d6cd4
app dele
ncooke3 4d84847
e2e
ncooke3 180b29f
podfile
ncooke3 cee38df
review:
ncooke3 098066d
Review
ncooke3 db54acf
fix podfile
ncooke3 4a67322
add fixes to e2e file
ncooke3 678bf77
e2e updates
ncooke3 197949c
delegate fixes
ncooke3 2c564e7
rewrite in swift
ncooke3 0abebb5
doc comments:
ncooke3 a977ee3
Refactor and modernize Recaptcha Enterprise provider testing
ncooke3 984b525
rename
ncooke3 39b2adb
public getter and setter for site key
ncooke3 94a1f8d
recaptcha factory rename and options handling
ncooke3 ce8264f
Merge remote-tracking branch 'origin/main' into nc/recaptcha-1
ncooke3 10c3814
recaptchanenterprise -> recaptcha renames
ncooke3 2fb8aed
renames cont
ncooke3 74817fd
logging improvements
ncooke3 fae69fa
Apply suggestion from @paulb777
ncooke3 7fd95eb
Update FirebaseAppCheck/Apps/FIRAppCheckTestApp/E2E_TESTING.md
ncooke3 e092cf9
Update FirebaseAppCheck/Apps/FIRAppCheckTestApp/E2E_TESTING.md
ncooke3 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,64 @@ | ||
| # E2E Testing with FIRAppCheckTestApp | ||
|
|
||
| This document provides information on how to configure and run End-to-End (E2E) tests for App Check providers using this sample app. | ||
|
|
||
| ## Configurability | ||
|
|
||
| The app's behavior can be configured using environment variables passed during test execution. | ||
|
|
||
| ### Environment Variables | ||
|
|
||
| Starting with Xcode 13, you can pass environment variables directly to the test runner by prefixing them with `TEST_RUNNER_`. The prefix is stripped when it reaches the test process. | ||
|
|
||
| - **`TEST_RUNNER_RECAPTCHA_SITE_KEY`**: The reCAPTCHA Enterprise site key used by the `RecaptchaEnterpriseProvider`. | ||
| - **Access in Code**: Read via `ProcessInfo.processInfo.environment["RECAPTCHA_SITE_KEY"]`. | ||
| - **`TEST_RUNNER_APP_CHECK_PROVIDER`**: Specifies which App Check provider factory to use. | ||
| - **Supported Values**: `recaptcha` (default), `debug`. | ||
| - **Access in Code**: Read via `ProcessInfo.processInfo.environment["APP_CHECK_PROVIDER"]`. | ||
|
|
||
| ### Manual Override | ||
|
|
||
| For local debugging and manual testing, you can override the environment variables by setting `manualProviderOverride` in `AppDelegate.swift`: | ||
|
|
||
| ```swift | ||
| let manualProviderOverride: String? = "debug" // Force debug provider | ||
| ``` | ||
|
|
||
| ## Running Tests | ||
|
|
||
| The commands below should be run from the **repository root**. | ||
|
|
||
| ### Prerequisites | ||
| - Ensure you have a local checkout of the `app-check` repository if you are developing it locally. Set `FIREBASE_APP_CHECK_LOCAL_PATH` to point to it. | ||
|
|
||
| ### Sample Commands | ||
|
|
||
| #### Run tests with reCAPTCHA Enterprise provider | ||
|
ncooke3 marked this conversation as resolved.
Outdated
|
||
|
|
||
| ```bash | ||
| export TEST_RUNNER_RECAPTCHA_SITE_KEY="your_site_key_here" | ||
| export TEST_RUNNER_APP_CHECK_PROVIDER="recaptcha" | ||
| export FIREBASE_APP_CHECK_LOCAL_PATH="/path/to/your/local/app-check" | ||
|
|
||
| xcodebuild test \ | ||
| -workspace FirebaseAppCheck/Apps/FIRAppCheckTestApp/FIRAppCheckTestApp.xcworkspace \ | ||
| -scheme FIRAppCheckTestApp \ | ||
| -destination 'platform=iOS Simulator,name=iPhone 16' | ||
| ``` | ||
|
|
||
| #### Run tests with Debug provider | ||
|
|
||
| ```bash | ||
| export TEST_RUNNER_APP_CHECK_PROVIDER="debug" | ||
| export FIREBASE_APP_CHECK_LOCAL_PATH="/path/to/your/local/app-check" | ||
|
|
||
| xcodebuild test \ | ||
| -workspace FirebaseAppCheck/Apps/FIRAppCheckTestApp/FIRAppCheckTestApp.xcworkspace \ | ||
| -scheme FIRAppCheckTestApp \ | ||
| -destination 'platform=iOS Simulator,name=iPhone 16' | ||
| ``` | ||
| *Note: The Debug provider might require you to register the generated debug token in the Firebase Console for the tests to pass if they interact with live services.* | ||
|
|
||
| ## Project Structure | ||
|
|
||
| - **`FIRAppCheckTestAppTests`**: A hosted unit test target containing the test cases. It runs inside the app process to have access to the full app context. | ||
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
todo: Address feedback in PR separately.