<?xml version="1.0" encoding="UTF-8"?>
<testsuites>
<testsuite name="io.oxygenhub.android.alerts.LandAlertsTest" tests="3" skipped="0" failures="0" errors="0" timestamp="2026-11-04T01:42:08.459Z" hostname="(none)" time="0.281">
  <properties/>
  <testcase name="a_proposal_that_becomes_landable_again_is_said_again" classname="io.oxygenhub.android.alerts.LandAlertsTest" time="0.145"/>
  <testcase name="the_same_number_in_two_repositories_is_two_proposals" classname="io.oxygenhub.android.alerts.LandAlertsTest" time="0.104"/>
  <testcase name="a_proposal_is_said_once_while_it_stays_landable" classname="io.oxygenhub.android.alerts.LandAlertsTest" time="0.001"/>
  <system-out><![CDATA[]]></system-out>
  <system-err><![CDATA[]]></system-err>
</testsuite>
<testsuite name="io.oxygenhub.android.api.AvatarTest" tests="3" skipped="0" failures="0" errors="0" timestamp="2026-11-04T01:42:08.747Z" hostname="(none)" time="0.165">
  <properties/>
  <testcase name="theHubsIdenticonIsReadIntoItsHueAndCells" classname="io.oxygenhub.android.api.AvatarTest" time="0.16"/>
  <testcase name="whatTheAppCannotDrawIsNoAvatar" classname="io.oxygenhub.android.api.AvatarTest" time="0.001"/>
  <testcase name="anUploadedPictureIsKeptAsItCame" classname="io.oxygenhub.android.api.AvatarTest" time="0.002"/>
  <system-out><![CDATA[]]></system-out>
  <system-err><![CDATA[]]></system-err>
</testsuite>
<testsuite name="io.oxygenhub.android.api.DeviceFlowTest" tests="8" skipped="0" failures="0" errors="0" timestamp="2026-11-04T01:42:08.974Z" hostname="(none)" time="2.075">
  <properties/>
  <testcase name="expiresHereWhenTheHubNeverAnswers" classname="io.oxygenhub.android.api.DeviceFlowTest" time="1.612"/>
  <testcase name="denied" classname="io.oxygenhub.android.api.DeviceFlowTest" time="0.023"/>
  <testcase name="anUnexpectedAnswerStops" classname="io.oxygenhub.android.api.DeviceFlowTest" time="0.029"/>
  <testcase name="expiredOnTheHub" classname="io.oxygenhub.android.api.DeviceFlowTest" time="0.015"/>
  <testcase name="aHubThatCannotSignInDevices" classname="io.oxygenhub.android.api.DeviceFlowTest" time="0.065"/>
  <testcase name="requestingACodeNamesTheAppAndItsScopes" classname="io.oxygenhub.android.api.DeviceFlowTest" time="0.065"/>
  <testcase name="pollsUntilApprovedSlowingDownWhenTold" classname="io.oxygenhub.android.api.DeviceFlowTest" time="0.185"/>
  <testcase name="whoAmIUsesTheNewToken" classname="io.oxygenhub.android.api.DeviceFlowTest" time="0.074"/>
  <system-out><![CDATA[]]></system-out>
  <system-err><![CDATA[]]></system-err>
</testsuite>
<testsuite name="io.oxygenhub.android.api.HubClientTest" tests="17" skipped="0" failures="0" errors="0" timestamp="2026-11-04T01:42:11.055Z" hostname="(none)" time="1.27">
  <properties/>
  <testcase name="revokingDeletesTheOwnToken" classname="io.oxygenhub.android.api.HubClientTest" time="0.018"/>
  <testcase name="issuesAskForTheState" classname="io.oxygenhub.android.api.HubClientTest" time="0.05"/>
  <testcase name="aRunnerTokenIsAskedForWithThePost" classname="io.oxygenhub.android.api.HubClientTest" time="0.159"/>
  <testcase name="aBrokenConnection" classname="io.oxygenhub.android.api.HubClientTest" time="0.045"/>
  <testcase name="pathSegmentsAreEncoded" classname="io.oxygenhub.android.api.HubClientTest" time="0.048"/>
  <testcase name="userSendsTheBearerToken" classname="io.oxygenhub.android.api.HubClientTest" time="0.08"/>
  <testcase name="revokingARefusedTokenDoesNotCallBack" classname="io.oxygenhub.android.api.HubClientTest" time="0.063"/>
  <testcase name="proposalsAreListedReadAndLanded" classname="io.oxygenhub.android.api.HubClientTest" time="0.232"/>
  <testcase name="anAvatarIsFetchedWithoutTheToken" classname="io.oxygenhub.android.api.HubClientTest" time="0.06"/>
  <testcase name="markingRead" classname="io.oxygenhub.android.api.HubClientTest" time="0.059"/>
  <testcase name="theTokenIsNotInToString" classname="io.oxygenhub.android.api.HubClientTest" time="0.009"/>
  <testcase name="aProblemBecomesAnHttpError" classname="io.oxygenhub.android.api.HubClientTest" time="0.059"/>
  <testcase name="anUnreadableAnswer" classname="io.oxygenhub.android.api.HubClientTest" time="0.061"/>
  <testcase name="aRefusedLandingCarriesTheHubsReason" classname="io.oxygenhub.android.api.HubClientTest" time="0.111"/>
  <testcase name="aRefusedTokenEndsTheSession" classname="io.oxygenhub.android.api.HubClientTest" time="0.068"/>
  <testcase name="inboxWithALimit" classname="io.oxygenhub.android.api.HubClientTest" time="0.063"/>
  <testcase name="repositories" classname="io.oxygenhub.android.api.HubClientTest" time="0.081"/>
  <system-out><![CDATA[]]></system-out>
  <system-err><![CDATA[]]></system-err>
</testsuite>
<testsuite name="io.oxygenhub.android.api.ModelsTest" tests="11" skipped="0" failures="0" errors="0" timestamp="2026-11-04T01:42:12.329Z" hostname="(none)" time="0.037">
  <properties/>
  <testcase name="issues" classname="io.oxygenhub.android.api.ModelsTest" time="0.001"/>
  <testcase name="secretsStayOutOfToString" classname="io.oxygenhub.android.api.ModelsTest" time="0.001"/>
  <testcase name="shownNameFallsBackToUsername" classname="io.oxygenhub.android.api.ModelsTest" time="0.001"/>
  <testcase name="repositoriesWithEveryVisibilityAndAnUnknownField" classname="io.oxygenhub.android.api.ModelsTest" time="0.0"/>
  <testcase name="user" classname="io.oxygenhub.android.api.ModelsTest" time="0.0"/>
  <testcase name="inbox" classname="io.oxygenhub.android.api.ModelsTest" time="0.015"/>
  <testcase name="deviceCodeAndToken" classname="io.oxygenhub.android.api.ModelsTest" time="0.001"/>
  <testcase name="hubUrls" classname="io.oxygenhub.android.api.ModelsTest" time="0.001"/>
  <testcase name="proposalsAsTheHubServesThem" classname="io.oxygenhub.android.api.ModelsTest" time="0.015"/>
  <testcase name="pageToOpenWithoutTheCompleteUri" classname="io.oxygenhub.android.api.ModelsTest" time="0.001"/>
  <testcase name="errorDetails" classname="io.oxygenhub.android.api.ModelsTest" time="0.0"/>
  <system-out><![CDATA[]]></system-out>
  <system-err><![CDATA[]]></system-err>
</testsuite>
<testsuite name="io.oxygenhub.android.auth.SessionManagerTest" tests="8" skipped="0" failures="0" errors="0" timestamp="2026-11-04T01:42:12.387Z" hostname="(none)" time="0.185">
  <properties/>
  <testcase name="theTokenIsNotInToString" classname="io.oxygenhub.android.auth.SessionManagerTest" time="0.166"/>
  <testcase name="theLastHubIsRemembered" classname="io.oxygenhub.android.auth.SessionManagerTest" time="0.002"/>
  <testcase name="signingOutOfflineStillForgetsTheTokenAndSaysSo" classname="io.oxygenhub.android.auth.SessionManagerTest" time="0.007"/>
  <testcase name="aTokenTheHubNoLongerKnows" classname="io.oxygenhub.android.auth.SessionManagerTest" time="0.006"/>
  <testcase name="aRefusedTokenEndsTheSession" classname="io.oxygenhub.android.auth.SessionManagerTest" time="0.0"/>
  <testcase name="aSavedSessionIsThereAtStart" classname="io.oxygenhub.android.auth.SessionManagerTest" time="0.0"/>
  <testcase name="signingOutRevokesTheToken" classname="io.oxygenhub.android.auth.SessionManagerTest" time="0.002"/>
  <testcase name="signingInSavesTheSession" classname="io.oxygenhub.android.auth.SessionManagerTest" time="0.0"/>
  <system-out><![CDATA[]]></system-out>
  <system-err><![CDATA[]]></system-err>
</testsuite>
<testsuite name="io.oxygenhub.android.runner.PhoneRunnerTest" tests="2" skipped="0" failures="0" errors="0" timestamp="2026-11-04T01:42:12.574Z" hostname="(none)" time="0.003">
  <properties/>
  <testcase name="aWarmPhoneRests" classname="io.oxygenhub.android.runner.PhoneRunnerTest" time="0.003"/>
  <testcase name="whatItRunsReadsPlainly" classname="io.oxygenhub.android.runner.PhoneRunnerTest" time="0.0"/>
  <system-out><![CDATA[]]></system-out>
  <system-err><![CDATA[]]></system-err>
</testsuite>
<testsuite name="io.oxygenhub.android.secondfactor.ApprovalsViewModelTest" tests="5" skipped="0" failures="0" errors="0" timestamp="2026-11-04T01:42:12.583Z" hostname="(none)" time="0.087">
  <properties/>
  <testcase name="backingOutOfThePromptSendsNothing" classname="io.oxygenhub.android.secondfactor.ApprovalsViewModelTest" time="0.039"/>
  <testcase name="theMessageIsTheOneTheHubChecks" classname="io.oxygenhub.android.secondfactor.ApprovalsViewModelTest" time="0.002"/>
  <testcase name="aHubThatCannotSayLeavesNothingShown" classname="io.oxygenhub.android.secondfactor.ApprovalsViewModelTest" time="0.008"/>
  <testcase name="aWrongNumberAndANoAreSaidPlainly" classname="io.oxygenhub.android.secondfactor.ApprovalsViewModelTest" time="0.02"/>
  <testcase name="aWaitingApprovalIsShownAndApprovingSignsTheNumberPicked" classname="io.oxygenhub.android.secondfactor.ApprovalsViewModelTest" time="0.009"/>
  <system-out><![CDATA[]]></system-out>
  <system-err><![CDATA[]]></system-err>
</testsuite>
<testsuite name="io.oxygenhub.android.ui.CodeBrowserTest" tests="6" skipped="0" failures="0" errors="0" timestamp="2026-11-04T01:42:12.686Z" hostname="(none)" time="0.137">
  <properties/>
  <testcase name="aReadmeThatWillNotLoadIsLeftOut" classname="io.oxygenhub.android.ui.CodeBrowserTest" time="0.017"/>
  <testcase name="aChangeCarriesItsDiffAndSmallOnesOpen" classname="io.oxygenhub.android.ui.CodeBrowserTest" time="0.058"/>
  <testcase name="startsAtTheDefaultBookmarkFoldersFirstWithTheReadme" classname="io.oxygenhub.android.ui.CodeBrowserTest" time="0.004"/>
  <testcase name="historyComesAPageAtATime" classname="io.oxygenhub.android.ui.CodeBrowserTest" time="0.048"/>
  <testcase name="filesAreHighlightedByTheirNames" classname="io.oxygenhub.android.ui.CodeBrowserTest" time="0.003"/>
  <testcase name="anotherBookmarkOrTagIsBrowsedFromItsTop" classname="io.oxygenhub.android.ui.CodeBrowserTest" time="0.003"/>
  <system-out><![CDATA[]]></system-out>
  <system-err><![CDATA[]]></system-err>
</testsuite>
<testsuite name="io.oxygenhub.android.ui.DashboardViewModelTest" tests="12" skipped="0" failures="0" errors="0" timestamp="2026-11-04T01:42:12.851Z" hostname="(none)" time="0.22">
  <properties/>
  <testcase name="greetsAndListsTheUsersRecentRepositories" classname="io.oxygenhub.android.ui.DashboardViewModelTest" time="0.044"/>
  <testcase name="withoutUserReadGreetsByTheSessionsName" classname="io.oxygenhub.android.ui.DashboardViewModelTest" time="0.006"/>
  <testcase name="withNoRepositoriesOfTheirOwnShowsTheHubs" classname="io.oxygenhub.android.ui.DashboardViewModelTest" time="0.009"/>
  <testcase name="leavesOutMalformedSkyEvents" classname="io.oxygenhub.android.ui.DashboardViewModelTest" time="0.005"/>
  <testcase name="drawsYourSkyFromTheHubAndTheFieldWithoutIt" classname="io.oxygenhub.android.ui.DashboardViewModelTest" time="0.02"/>
  <testcase name="decodesAFrameAndUnpremultipliesItsColours" classname="io.oxygenhub.android.ui.DashboardViewModelTest" time="0.066"/>
  <testcase name="aFailureAndARetry" classname="io.oxygenhub.android.ui.DashboardViewModelTest" time="0.009"/>
  <testcase name="showsTheAccountsAvatarAndKeepsItWhenTheHubFails" classname="io.oxygenhub.android.ui.DashboardViewModelTest" time="0.005"/>
  <testcase name="aRepositorysSkyIsNothingFromAHubWithoutIt" classname="io.oxygenhub.android.ui.DashboardViewModelTest" time="0.004"/>
  <testcase name="fetchesAfreshWhenItComesBackToTheFront" classname="io.oxygenhub.android.ui.DashboardViewModelTest" time="0.004"/>
  <testcase name="greetings" classname="io.oxygenhub.android.ui.DashboardViewModelTest" time="0.016"/>
  <testcase name="showsProposalsToReviewAndNoneFromAHubWithoutTheCall" classname="io.oxygenhub.android.ui.DashboardViewModelTest" time="0.026"/>
  <system-out><![CDATA[]]></system-out>
  <system-err><![CDATA[]]></system-err>
</testsuite>
<testsuite name="io.oxygenhub.android.ui.FlowViewModelsTest" tests="4" skipped="0" failures="0" errors="0" timestamp="2026-11-04T01:42:13.074Z" hostname="(none)" time="0.066">
  <properties/>
  <testcase name="aLogGrowsFromTheLastLineHeldUntilTheJobEnds" classname="io.oxygenhub.android.ui.FlowViewModelsTest" time="0.031"/>
  <testcase name="listsTheRepositorysRuns" classname="io.oxygenhub.android.ui.FlowViewModelsTest" time="0.002"/>
  <testcase name="aGatedJobIsApprovedOrRejectedAndARunExpedited" classname="io.oxygenhub.android.ui.FlowViewModelsTest" time="0.01"/>
  <testcase name="aRunFollowsItsJobsAndCanBeCancelled" classname="io.oxygenhub.android.ui.FlowViewModelsTest" time="0.013"/>
  <system-out><![CDATA[]]></system-out>
  <system-err><![CDATA[]]></system-err>
</testsuite>
<testsuite name="io.oxygenhub.android.ui.IssueViewModelTest" tests="7" skipped="0" failures="0" errors="0" timestamp="2026-11-04T01:42:13.149Z" hostname="(none)" time="0.05">
  <properties/>
  <testcase name="whatTheHubRefusesIsSaidAndThePageStays" classname="io.oxygenhub.android.ui.IssueViewModelTest" time="0.014"/>
  <testcase name="aNewIssueOpensWithItsTitle" classname="io.oxygenhub.android.ui.IssueViewModelTest" time="0.004"/>
  <testcase name="aCommentJoinsTheThreadAndTheBoxEmpties" classname="io.oxygenhub.android.ui.IssueViewModelTest" time="0.005"/>
  <testcase name="showsTheIssueAndItsComments" classname="io.oxygenhub.android.ui.IssueViewModelTest" time="0.003"/>
  <testcase name="closingAndReopeningChangeItsState" classname="io.oxygenhub.android.ui.IssueViewModelTest" time="0.007"/>
  <testcase name="assigneesAreSetAsAWholeSetTidied" classname="io.oxygenhub.android.ui.IssueViewModelTest" time="0.006"/>
  <testcase name="labelsAreSetAsAWholeSet" classname="io.oxygenhub.android.ui.IssueViewModelTest" time="0.005"/>
  <system-out><![CDATA[]]></system-out>
  <system-err><![CDATA[]]></system-err>
</testsuite>
<testsuite name="io.oxygenhub.android.ui.LinksTest" tests="2" skipped="0" failures="0" errors="0" timestamp="2026-11-04T01:42:13.207Z" hostname="(none)" time="0.032">
  <properties/>
  <testcase name="hubPagesOpenTheirOwnScreens" classname="io.oxygenhub.android.ui.LinksTest" time="0.031"/>
  <testcase name="otherPagesAndSitesGoToTheBrowser" classname="io.oxygenhub.android.ui.LinksTest" time="0.001"/>
  <system-out><![CDATA[]]></system-out>
  <system-err><![CDATA[]]></system-err>
</testsuite>
<testsuite name="io.oxygenhub.android.ui.ListViewModelsTest" tests="7" skipped="0" failures="0" errors="0" timestamp="2026-11-04T01:42:13.251Z" hostname="(none)" time="0.031">
  <properties/>
  <testcase name="aFailedRepositoryList" classname="io.oxygenhub.android.ui.ListViewModelsTest" time="0.005"/>
  <testcase name="repositoriesNewestFirstFilteredByOwnerAndText" classname="io.oxygenhub.android.ui.ListViewModelsTest" time="0.003"/>
  <testcase name="aFailedMarkIsPutBack" classname="io.oxygenhub.android.ui.ListViewModelsTest" time="0.006"/>
  <testcase name="markingOneRead" classname="io.oxygenhub.android.ui.ListViewModelsTest" time="0.001"/>
  <testcase name="markingAllRead" classname="io.oxygenhub.android.ui.ListViewModelsTest" time="0.007"/>
  <testcase name="issuesPinnedFirstThenNewest" classname="io.oxygenhub.android.ui.ListViewModelsTest" time="0.005"/>
  <testcase name="noIssuesIsReadyAndEmpty" classname="io.oxygenhub.android.ui.ListViewModelsTest" time="0.001"/>
  <system-out><![CDATA[]]></system-out>
  <system-err><![CDATA[]]></system-err>
</testsuite>
<testsuite name="io.oxygenhub.android.ui.NewRepositoryAndFlowTest" tests="5" skipped="0" failures="0" errors="0" timestamp="2026-11-04T01:42:13.285Z" hostname="(none)" time="0.13">
  <properties/>
  <testcase name="aRepositoryIsMadeUnderYouOrAnOrganisationYouBelongTo" classname="io.oxygenhub.android.ui.NewRepositoryAndFlowTest" time="0.044"/>
  <testcase name="theMonitorFiltersDrawsAndTimesRuns" classname="io.oxygenhub.android.ui.NewRepositoryAndFlowTest" time="0.062"/>
  <testcase name="anAssistantDraftsTheStarterAndTheScreenFollowsIt" classname="io.oxygenhub.android.ui.NewRepositoryAndFlowTest" time="0.011"/>
  <testcase name="aFailedDraftStillOpensTheRepositoryAndSaysWhy" classname="io.oxygenhub.android.ui.NewRepositoryAndFlowTest" time="0.011"/>
  <testcase name="aPhoneWithoutRepoAdminIsToldHowToAllowIt" classname="io.oxygenhub.android.ui.NewRepositoryAndFlowTest" time="0.001"/>
  <system-out><![CDATA[]]></system-out>
  <system-err><![CDATA[]]></system-err>
</testsuite>
<testsuite name="io.oxygenhub.android.ui.OwnerViewModelTest" tests="2" skipped="0" failures="0" errors="0" timestamp="2026-11-04T01:42:13.418Z" hostname="(none)" time="0.022">
  <properties/>
  <testcase name="neitherIsAFailure" classname="io.oxygenhub.android.ui.OwnerViewModelTest" time="0.007"/>
  <testcase name="aNameIsAnAccountOrElseAnOrganisation" classname="io.oxygenhub.android.ui.OwnerViewModelTest" time="0.015"/>
  <system-out><![CDATA[]]></system-out>
  <system-err><![CDATA[]]></system-err>
</testsuite>
<testsuite name="io.oxygenhub.android.ui.ProjectsViewModelTest" tests="4" skipped="0" failures="0" errors="0" timestamp="2026-11-04T01:42:13.459Z" hostname="(none)" time="0.05">
  <properties/>
  <testcase name="boardsOfTheAccountAndItsRepositoriesOwnersOpenFirst" classname="io.oxygenhub.android.ui.ProjectsViewModelTest" time="0.042"/>
  <testcase name="anOwnerWhoseBoardsWillNotLoadIsLeftOut" classname="io.oxygenhub.android.ui.ProjectsViewModelTest" time="0.002"/>
  <testcase name="aMoveTheHubRefusesIsPutBack" classname="io.oxygenhub.android.ui.ProjectsViewModelTest" time="0.005"/>
  <testcase name="aCardMovesToAnotherColumn" classname="io.oxygenhub.android.ui.ProjectsViewModelTest" time="0.001"/>
  <system-out><![CDATA[]]></system-out>
  <system-err><![CDATA[]]></system-err>
</testsuite>
<testsuite name="io.oxygenhub.android.ui.ProposalFilesTest" tests="2" skipped="0" failures="0" errors="0" timestamp="2026-11-04T01:42:13.523Z" hostname="(none)" time="0.004">
  <properties/>
  <testcase name="aProposalsFilesComeWithTheirDiffs" classname="io.oxygenhub.android.ui.ProposalFilesTest" time="0.003"/>
  <testcase name="aHubWithoutTheDiffSaysSo" classname="io.oxygenhub.android.ui.ProposalFilesTest" time="0.001"/>
  <system-out><![CDATA[]]></system-out>
  <system-err><![CDATA[]]></system-err>
</testsuite>
<testsuite name="io.oxygenhub.android.ui.ProposalViewModelTest" tests="9" skipped="0" failures="0" errors="0" timestamp="2026-11-04T01:42:13.531Z" hostname="(none)" time="0.147">
  <properties/>
  <testcase name="aReadOnlyTokenIsAskedToSignInAgain" classname="io.oxygenhub.android.ui.ProposalViewModelTest" time="0.025"/>
  <testcase name="landingSaysSoAndShowsItLanded" classname="io.oxygenhub.android.ui.ProposalViewModelTest" time="0.022"/>
  <testcase name="aSessionMayWriteOnlyWithTheScope" classname="io.oxygenhub.android.ui.ProposalViewModelTest" time="0.0"/>
  <testcase name="showsAProposalWithItsChecks" classname="io.oxygenhub.android.ui.ProposalViewModelTest" time="0.02"/>
  <testcase name="autoLandIsSetAndCleared" classname="io.oxygenhub.android.ui.ProposalViewModelTest" time="0.02"/>
  <testcase name="aRefusalShowsTheHubsReason" classname="io.oxygenhub.android.ui.ProposalViewModelTest" time="0.018"/>
  <testcase name="withoutItsChecksTheProposalStillShows" classname="io.oxygenhub.android.ui.ProposalViewModelTest" time="0.002"/>
  <testcase name="aReviewIsSentAndSaysSo" classname="io.oxygenhub.android.ui.ProposalViewModelTest" time="0.018"/>
  <testcase name="listsOpenProposalsNewestFirstAndTheLandedOnAsked" classname="io.oxygenhub.android.ui.ProposalViewModelTest" time="0.018"/>
  <system-out><![CDATA[]]></system-out>
  <system-err><![CDATA[]]></system-err>
</testsuite>
<testsuite name="io.oxygenhub.android.ui.ReleasesAndSearchTest" tests="2" skipped="0" failures="0" errors="0" timestamp="2026-11-04T01:42:13.682Z" hostname="(none)" time="0.026">
  <properties/>
  <testcase name="searchFindsIssuesAndProposalsAndSaysWhenItFails" classname="io.oxygenhub.android.ui.ReleasesAndSearchTest" time="0.019"/>
  <testcase name="releasesNewestFirst" classname="io.oxygenhub.android.ui.ReleasesAndSearchTest" time="0.006"/>
  <system-out><![CDATA[]]></system-out>
  <system-err><![CDATA[]]></system-err>
</testsuite>
<testsuite name="io.oxygenhub.android.ui.SignInViewModelTest" tests="7" skipped="0" failures="0" errors="0" timestamp="2026-11-04T01:42:13.724Z" hostname="(none)" time="0.034">
  <properties/>
  <testcase name="aBadAddressIsRefusedHere" classname="io.oxygenhub.android.ui.SignInViewModelTest" time="0.005"/>
  <testcase name="theDefaultHubOrTheLastOne" classname="io.oxygenhub.android.ui.SignInViewModelTest" time="0.001"/>
  <testcase name="aDenialIsSaid" classname="io.oxygenhub.android.ui.SignInViewModelTest" time="0.004"/>
  <testcase name="signsInOnceApproved" classname="io.oxygenhub.android.ui.SignInViewModelTest" time="0.002"/>
  <testcase name="aTokenWithoutUserReadUsesTheNameTheGrantGives" classname="io.oxygenhub.android.ui.SignInViewModelTest" time="0.002"/>
  <testcase name="cancelling" classname="io.oxygenhub.android.ui.SignInViewModelTest" time="0.002"/>
  <testcase name="anUnreachableHubIsSaid" classname="io.oxygenhub.android.ui.SignInViewModelTest" time="0.002"/>
  <system-out><![CDATA[]]></system-out>
  <system-err><![CDATA[]]></system-err>
</testsuite>
<testsuite name="io.oxygenhub.android.ui.ThemeTest" tests="1" skipped="0" failures="0" errors="0" timestamp="2026-11-04T01:42:13.761Z" hostname="(none)" time="0.21">
  <properties/>
  <testcase name="wallpaperColoursInTheDarkLiftEachContainerAStepAboveTheLast" classname="io.oxygenhub.android.ui.ThemeTest" time="0.199"/>
  <system-out><![CDATA[]]></system-out>
  <system-err><![CDATA[]]></system-err>
</testsuite>
<testsuite name="io.oxygenhub.android.ui.WidgetDataTest" tests="10" skipped="0" failures="0" errors="0" timestamp="2026-11-04T01:42:13.985Z" hostname="(none)" time="0.147">
  <properties/>
  <testcase name="theSkysColoursFollowTheTheme" classname="io.oxygenhub.android.ui.WidgetDataTest" time="0.007"/>
  <testcase name="aPartTheHubCannotGiveIsLeftOutNotTheWholeWidget" classname="io.oxygenhub.android.ui.WidgetDataTest" time="0.036"/>
  <testcase name="needsYouAndTheHealthStripComeFromWhatTheWidgetFetches" classname="io.oxygenhub.android.ui.WidgetDataTest" time="0.009"/>
  <testcase name="aTapOnACountOpensItsScreen" classname="io.oxygenhub.android.ui.WidgetDataTest" time="0.009"/>
  <testcase name="theRunnerShowsOnlyWhileThePhoneServes" classname="io.oxygenhub.android.ui.WidgetDataTest" time="0.032"/>
  <testcase name="theHealthSummaryCountsFinishedRunsOnly" classname="io.oxygenhub.android.ui.WidgetDataTest" time="0.004"/>
  <testcase name="theWidgetFetchesYourSkyAndALostSkyLeavesThePlainSurface" classname="io.oxygenhub.android.ui.WidgetDataTest" time="0.011"/>
  <testcase name="theCountsRowSaysWhatIsAssignedAndOneOfAKindOpensItself" classname="io.oxygenhub.android.ui.WidgetDataTest" time="0.018"/>
  <testcase name="onlyRealActivityIsDrawn" classname="io.oxygenhub.android.ui.WidgetDataTest" time="0.0"/>
  <testcase name="theWidgetShowsTheLatestRunsAndCountsAndAsksForASignInWithoutOne" classname="io.oxygenhub.android.ui.WidgetDataTest" time="0.018"/>
  <system-out><![CDATA[]]></system-out>
  <system-err><![CDATA[]]></system-err>
</testsuite>
<testsuite name="io.oxygenhub.android.ui.repos.CloneDialogTest" tests="1" skipped="0" failures="0" errors="0" timestamp="2026-11-04T01:42:14.136Z" hostname="(none)" time="0.003">
  <properties/>
  <testcase name="theCommandClonesTheHubsAddress" classname="io.oxygenhub.android.ui.repos.CloneDialogTest" time="0.003"/>
  <system-out><![CDATA[]]></system-out>
  <system-err><![CDATA[]]></system-err>
</testsuite>
<testsuite name="io.oxygenhub.android.update.AppUpdateTest" tests="2" skipped="0" failures="0" errors="0" timestamp="2026-11-04T01:42:14.143Z" hostname="(none)" time="0.011">
  <properties/>
  <testcase name="versionsCompareAsNumbers" classname="io.oxygenhub.android.update.AppUpdateTest" time="0.005"/>
  <testcase name="theNewestFullReleaseWithAnApkIsOffered" classname="io.oxygenhub.android.update.AppUpdateTest" time="0.006"/>
  <system-out><![CDATA[]]></system-out>
  <system-err><![CDATA[]]></system-err>
</testsuite>
</testsuites>
