use of org.openecard.gui.android.eac.types.ServerData in project open-ecard by ecsec.
the class EacGuiImpl method loadValuesFromSteps.
public void loadValuesFromSteps(Step step1, Step step2) {
String subject = "", subjectUrl = "";
TermsOfUsage termsOfUsage = new TermsOfUsage("text/plain", new byte[0]);
String validity = "";
String issuer = "", issuerUrl = "";
for (InputInfoUnit next : step1.getInputInfoUnits()) {
if ("SubjectName".equals(next.getID()) && next instanceof ToggleText) {
ToggleText tt = (ToggleText) next;
subject = tt.getText();
} else if ("SubjectURL".equals(next.getID()) && next instanceof ToggleText) {
ToggleText tt = (ToggleText) next;
subjectUrl = tt.getText();
} else if ("TermsOfUsage".equals(next.getID()) && next instanceof ToggleText) {
ToggleText tt = (ToggleText) next;
Document d = tt.getDocument();
termsOfUsage = new TermsOfUsage(d.getMimeType(), d.getValue());
} else if ("Validity".equals(next.getID()) && next instanceof ToggleText) {
ToggleText tt = (ToggleText) next;
validity = tt.getText();
} else if ("IssuerName".equals(next.getID()) && next instanceof ToggleText) {
ToggleText tt = (ToggleText) next;
issuer = tt.getText();
} else if ("IssuerURL".equals(next.getID()) && next instanceof ToggleText) {
ToggleText tt = (ToggleText) next;
issuerUrl = tt.getText();
}
}
ArrayList<BoxItem> readAccess = new ArrayList<>();
ArrayList<BoxItem> writeAccess = new ArrayList<>();
for (InputInfoUnit next : step2.getInputInfoUnits()) {
if ("ReadCHATCheckBoxes".equals(next.getID()) && next instanceof Checkbox) {
Checkbox cb = (Checkbox) next;
this.readAccessBox = cb;
for (org.openecard.gui.definition.BoxItem nb : cb.getBoxItems()) {
BoxItem bi = new BoxItem(nb.getName(), nb.isChecked(), nb.isDisabled(), nb.getText());
readAccess.add(bi);
}
} else if ("WriteCHATCheckBoxes".equals(next.getID()) && next instanceof Checkbox) {
Checkbox cb = (Checkbox) next;
this.writeAccessBox = cb;
for (org.openecard.gui.definition.BoxItem nb : cb.getBoxItems()) {
BoxItem bi = new BoxItem(nb.getName(), nb.isChecked(), nb.isDisabled(), nb.getText());
writeAccess.add(bi);
}
}
}
ServerData sd = new ServerData(subject, subjectUrl, termsOfUsage, validity, issuer, issuerUrl, readAccess, writeAccess);
serverData.deliver(sd);
}
use of org.openecard.gui.android.eac.types.ServerData in project open-ecard by ecsec.
the class EacGuiImplTest method testPinOkFirstTime.
@Test
public void testPinOkFirstTime() throws InterruptedException {
new Expectations() {
{
eacData.passwordType = "PIN";
paceMarker.getMinLength();
result = 6;
paceMarker.getMaxLength();
result = 6;
}
};
final GuiIfaceReceiver<EacGuiImpl> guiRec = new GuiIfaceReceiver<>();
final EacGuiImpl anyGuiImpl = new EacGuiImpl();
guiRec.setUiInterface(anyGuiImpl);
Thread t = new Thread(new Runnable() {
@Override
public void run() {
UserConsentDescription uc = new UserConsentDescription("Test");
uc.getSteps().addAll(createInitialSteps());
EacNavigator nav = new EacNavigator(uc, guiRec);
ExecutionEngine exe = new ExecutionEngine(nav);
exe.process();
}
}, "GUI-Executor");
t.start();
// use the Binders API to access the values
ServerData sd = anyGuiImpl.getServerData();
assertEquals(sd.getSubject(), "Test Subject");
anyGuiImpl.selectAttributes(sd.getReadAccessAttributes(), sd.getWriteAccessAttributes());
assertEquals(anyGuiImpl.getPinStatus(), PinStatus.RC3);
assertTrue(anyGuiImpl.enterPin(null, "123456"));
// wait for executor to finish
t.join();
}
Aggregations