mirror of
https://github.com/fleetdm/fleet
synced 2026-05-16 05:28:38 +00:00
For #26519 This PR allows Fleet server to use Android with either fleetdm.com proxy or locally. It also removes the Android feature flag from the backend. The frontend changes and proxy API documentation will be in separate PRs. Updated contributor docs: https://github.com/fleetdm/fleet/pull/29880/files Integration tests are missing and tracked as a separate issue: https://github.com/fleetdm/fleet/issues/27080 # Checklist for submitter - [x] Changes file added for user-visible changes in `changes/`, `orbit/changes/` or `ee/fleetd-chrome/changes`. - [x] Added/updated automated tests - [x] Manual QA for all new/changed functionality
49 lines
1.3 KiB
Go
49 lines
1.3 KiB
Go
package android
|
|
|
|
import (
|
|
"context"
|
|
"net/http"
|
|
"testing"
|
|
|
|
"github.com/fleetdm/fleet/v4/server/datastore/mysql"
|
|
"github.com/fleetdm/fleet/v4/server/mdm/android"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestAndroid(t *testing.T) {
|
|
s := SetUpSuite(t, "integrationtest.Android")
|
|
|
|
cases := []struct {
|
|
name string
|
|
fn func(t *testing.T, s *Suite)
|
|
}{
|
|
{"HappyPath", testHappyPath},
|
|
}
|
|
for _, c := range cases {
|
|
t.Run(c.name, func(t *testing.T) {
|
|
defer mysql.TruncateTables(t, s.DS)
|
|
c.fn(t, s)
|
|
})
|
|
}
|
|
}
|
|
|
|
func testHappyPath(t *testing.T, s *Suite) {
|
|
signupDetails := expectSignupDetails(t, s)
|
|
var signupURL android.EnterpriseSignupResponse
|
|
s.DoJSON(t, "GET", "/api/v1/fleet/android_enterprise/signup_url", nil, http.StatusOK, &signupURL)
|
|
assert.Equal(t, signupURL.Url, signupDetails.Url)
|
|
}
|
|
|
|
func expectSignupDetails(t *testing.T, s *Suite) *android.SignupDetails {
|
|
signupDetails := &android.SignupDetails{
|
|
Url: "URL",
|
|
Name: "Name",
|
|
}
|
|
s.AndroidProxy.SignupURLsCreateFunc = func(_ context.Context, serverURL, callbackURL string) (*android.SignupDetails, error) {
|
|
assert.Equal(t, s.Server.URL, serverURL)
|
|
// We will need to extract the security token from the callbackURL for further testing
|
|
assert.Contains(t, callbackURL, "/api/v1/fleet/android_enterprise/connect/")
|
|
return signupDetails, nil
|
|
}
|
|
return signupDetails
|
|
}
|