public void test(TestHarness harness)
{
harness.checkPoint("TestOfServerFactory:null");
ServerFactory factory = new ServerFactory();
String[] mechanisms = factory.getMechanismNames(null);
// should see all mechanisms
harness.check(includes(mechanisms, Registry.SASL_SRP_MECHANISM),
Registry.SASL_SRP_MECHANISM);
harness.check(includes(mechanisms, Registry.SASL_CRAM_MD5_MECHANISM),
Registry.SASL_CRAM_MD5_MECHANISM);
harness.check(includes(mechanisms, Registry.SASL_PLAIN_MECHANISM),
Registry.SASL_PLAIN_MECHANISM);
harness.check(includes(mechanisms, Registry.SASL_ANONYMOUS_MECHANISM),
Registry.SASL_ANONYMOUS_MECHANISM);
harness.checkPoint("TestOfServerFactory:" + Sasl.POLICY_NOPLAINTEXT);
HashMap p = new HashMap();
p.put(Sasl.POLICY_NOPLAINTEXT, "true");
mechanisms = factory.getMechanismNames(p);
// should see all mechanisms except PLAIN
harness.check(includes(mechanisms, Registry.SASL_SRP_MECHANISM),
Registry.SASL_SRP_MECHANISM);
harness.check(includes(mechanisms, Registry.SASL_CRAM_MD5_MECHANISM),
Registry.SASL_CRAM_MD5_MECHANISM);
harness.check(!includes(mechanisms, Registry.SASL_PLAIN_MECHANISM),
Registry.SASL_PLAIN_MECHANISM);
harness.check(includes(mechanisms, Registry.SASL_ANONYMOUS_MECHANISM),
Registry.SASL_ANONYMOUS_MECHANISM);
harness.checkPoint("TestOfServerFactory:" + Sasl.POLICY_NOACTIVE);
p.clear();
p.put(Sasl.POLICY_NOACTIVE, "true");
mechanisms = factory.getMechanismNames(p);
// should see all mechanisms except PLAIN & CRAM-MD5
harness.check(includes(mechanisms, Registry.SASL_SRP_MECHANISM),
Registry.SASL_SRP_MECHANISM);
harness.check(!includes(mechanisms, Registry.SASL_CRAM_MD5_MECHANISM),
Registry.SASL_CRAM_MD5_MECHANISM);
harness.check(!includes(mechanisms, Registry.SASL_PLAIN_MECHANISM),
Registry.SASL_PLAIN_MECHANISM);
harness.check(includes(mechanisms, Registry.SASL_ANONYMOUS_MECHANISM),
Registry.SASL_ANONYMOUS_MECHANISM);
harness.checkPoint("TestOfServerFactory:" + Sasl.POLICY_NODICTIONARY);
p.clear();
p.put(Sasl.POLICY_NODICTIONARY, "true");
mechanisms = factory.getMechanismNames(p);
// should see all mechanisms except PLAIN & CRAM-MD5
harness.check(includes(mechanisms, Registry.SASL_SRP_MECHANISM),
Registry.SASL_SRP_MECHANISM);
harness.check(!includes(mechanisms, Registry.SASL_CRAM_MD5_MECHANISM),
Registry.SASL_CRAM_MD5_MECHANISM);
harness.check(!includes(mechanisms, Registry.SASL_PLAIN_MECHANISM),
Registry.SASL_PLAIN_MECHANISM);
harness.check(includes(mechanisms, Registry.SASL_ANONYMOUS_MECHANISM),
Registry.SASL_ANONYMOUS_MECHANISM);
harness.checkPoint("TestOfServerFactory:" + Sasl.POLICY_NOANONYMOUS);
p.clear();
p.put(Sasl.POLICY_NOANONYMOUS, "true");
mechanisms = factory.getMechanismNames(p);
// should see all mechanisms except ANONYMOUS
harness.check(includes(mechanisms, Registry.SASL_SRP_MECHANISM),
Registry.SASL_SRP_MECHANISM);
harness.check(includes(mechanisms, Registry.SASL_CRAM_MD5_MECHANISM),
Registry.SASL_CRAM_MD5_MECHANISM);
harness.check(includes(mechanisms, Registry.SASL_PLAIN_MECHANISM),
Registry.SASL_PLAIN_MECHANISM);
harness.check(!includes(mechanisms, Registry.SASL_ANONYMOUS_MECHANISM),
Registry.SASL_ANONYMOUS_MECHANISM);
harness.checkPoint("TestOfServerFactory:" + Sasl.POLICY_FORWARD_SECRECY);
p.clear();
p.put(Sasl.POLICY_FORWARD_SECRECY, "true");
mechanisms = factory.getMechanismNames(p);
// should see all mechanisms except ANONYMOUS,PLAIN & CRAM-MD5
harness.check(includes(mechanisms, Registry.SASL_SRP_MECHANISM),
Registry.SASL_SRP_MECHANISM);
harness.check(!includes(mechanisms, Registry.SASL_CRAM_MD5_MECHANISM),
Registry.SASL_CRAM_MD5_MECHANISM);
harness.check(!includes(mechanisms, Registry.SASL_PLAIN_MECHANISM),
Registry.SASL_PLAIN_MECHANISM);
harness.check(!includes(mechanisms, Registry.SASL_ANONYMOUS_MECHANISM),
Registry.SASL_ANONYMOUS_MECHANISM);
harness.checkPoint("TestOfServerFactory:" + Sasl.POLICY_PASS_CREDENTIALS);
p.clear();
p.put(Sasl.POLICY_PASS_CREDENTIALS, "true");
mechanisms = factory.getMechanismNames(p);
// should see none
harness.check(!includes(mechanisms, Registry.SASL_SRP_MECHANISM),
Registry.SASL_SRP_MECHANISM);
harness.check(!includes(mechanisms, Registry.SASL_SRP_MECHANISM),
Registry.SASL_SRP_MECHANISM);