feat: add master-agent jump after openai onboarding

This commit is contained in:
kris
2026-03-31 04:43:16 +08:00
parent 9d7f38412a
commit 4aed93e90c
8 changed files with 57 additions and 5 deletions

View File

@@ -5,16 +5,22 @@ import static org.junit.Assert.assertNotNull;
import android.content.Intent;
import android.net.Uri;
import android.os.Looper;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.appcompat.app.AlertDialog;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.shadows.ShadowDialog;
import org.robolectric.annotation.Config;
import org.robolectric.Shadows;
import org.robolectric.shadows.ShadowActivity;
import org.robolectric.util.ReflectionHelpers;
@RunWith(RobolectricTestRunner.class)
@Config(sdk = 34)
@@ -56,6 +62,28 @@ public class OpenAiOnboardingActivityTest {
assertEquals(Uri.parse("https://platform.openai.com/api-keys"), nextIntent.getData());
}
@Test
public void successActionsDialogCanOpenMasterAgentConversation() {
OpenAiOnboardingActivity activity = Robolectric
.buildActivity(OpenAiOnboardingActivity.class)
.setup()
.get();
ReflectionHelpers.callInstanceMethod(activity, "showPostLoginActions");
AlertDialog dialog = (AlertDialog) ShadowDialog.getLatestDialog();
assertNotNull(dialog);
dialog.getButton(AlertDialog.BUTTON_POSITIVE).performClick();
Shadows.shadowOf(Looper.getMainLooper()).idle();
ShadowActivity shadowActivity = Shadows.shadowOf(activity);
Intent nextIntent = shadowActivity.getNextStartedActivity();
assertNotNull(nextIntent);
assertEquals(ProjectDetailActivity.class.getName(), nextIntent.getComponent().getClassName());
assertEquals("master-agent", nextIntent.getStringExtra(ProjectDetailActivity.EXTRA_PROJECT_ID));
assertEquals("主 Agent", nextIntent.getStringExtra(ProjectDetailActivity.EXTRA_PROJECT_NAME));
}
private static View findClickableViewContainingText(View root, String expectedText) {
if (root == null) {
return null;