Package com.google.enterprise.connector.ldap

Source Code of com.google.enterprise.connector.ldap.LdapConnectorTypeHtmlunitTest

// Copyright 2011 Google Inc. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package com.google.enterprise.connector.ldap;

import com.google.common.collect.ImmutableMap;
import com.google.enterprise.connector.ldap.MockLdapHandlers.SimpleMockLdapHandler;
import com.google.enterprise.connector.spi.ConfigureResponse;

import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException;
import com.gargoylesoftware.htmlunit.html.HtmlCheckBoxInput;
import com.gargoylesoftware.htmlunit.html.HtmlHiddenInput;
import com.gargoylesoftware.htmlunit.html.HtmlPage;

import junit.framework.TestCase;

import java.io.IOException;
import java.net.MalformedURLException;
import java.util.Locale;
import java.util.Map;
import java.util.ResourceBundle;

/**
* @author sveldurthi@google.com (Srinivas Veldurthi)
*
*/
public class LdapConnectorTypeHtmlunitTest extends TestCase {

  public void testLdapConnectorHtmlPageDeleteAttribute() throws FailingHttpStatusCodeException,
      MalformedURLException, IOException {

    SimpleMockLdapHandler basicMock = MockLdapHandlers.getBasicMock();
    LdapConnectorType lct = new LdapConnectorType(basicMock);
    ResourceBundle b = lct.getResourceBundle(Locale.US);

    ImmutableMap<String, String> Config =
        ImmutableMap.<String, String>builder().put("googlePropertiesVersion", "3")
            .put("authtype", "ANONYMOUS").put("hostname", "ldap.realistic-looking-domain.com")
            .put("googleConnectorName", "x").put("password", "test").put("username", "admin")
            .put("schema_9", "employeestatus").put("schema_8", "employeenumber")
            .put("method", "STANDARD").put("basedn", "ou=people,dc=example,dc=com")
            .put("filter", "ou=people").build();

    ConfigureResponse cr = lct.getPopulatedConfigForm(Config, Locale.US);

    Map<String, String> configData = cr.getConfigData();
    assertTrue(configData == null || configData.isEmpty());

    String message = cr.getMessage();
    assertTrue(message == null || message.length() < 1);

    HtmlUnitTestPage htmlUnitPage = new HtmlUnitTestPage(cr);

    assertTrue(htmlUnitPage.getWebClient().isJavaScriptEnabled());

    HtmlHiddenInput hiddenSchemaValueField = null;
    hiddenSchemaValueField = htmlUnitPage.getHtmlForm().getInputByName("schemavalue");
    assertEquals("[\"dn\",\"employeenumber\",\"employeestatus\"]",
        hiddenSchemaValueField.getValueAttribute());

    // de-select employeestatus checkbox and verify results
    HtmlCheckBoxInput chkFieldBefore = htmlUnitPage.getHtmlForm().getInputByValue("employeestatus");
    assertTrue(chkFieldBefore.isChecked());
    HtmlPage page2 = chkFieldBefore.click();
    HtmlCheckBoxInput chkFieldAfter = htmlUnitPage.getHtmlForm().getInputByValue("employeestatus");
    hiddenSchemaValueField = htmlUnitPage.getHtmlForm().getInputByName("schemavalue");
    assertFalse(chkFieldAfter.isChecked());
    assertEquals("[\"dn\",\"employeenumber\"]", hiddenSchemaValueField.getValueAttribute());

    // de-select employeenumber checkbox and verify results
    chkFieldBefore = htmlUnitPage.getHtmlForm().getInputByValue("employeenumber");
    assertTrue(chkFieldBefore.isChecked());
    HtmlPage page3 = chkFieldBefore.click();
    chkFieldAfter = htmlUnitPage.getHtmlForm().getInputByValue("employeenumber");
    hiddenSchemaValueField = htmlUnitPage.getHtmlForm().getInputByName("schemavalue");
    assertFalse(chkFieldAfter.isChecked());
    assertEquals("[\"dn\"]", hiddenSchemaValueField.getValueAttribute());

    htmlUnitPage.getWebClient().closeAllWindows();
  }

  public void testLdapConnectorHtmlPageDeleteDn() throws FailingHttpStatusCodeException,
      MalformedURLException, IOException {

    SimpleMockLdapHandler basicMock = MockLdapHandlers.getBasicMock();
    LdapConnectorType lct = new LdapConnectorType(basicMock);
    ResourceBundle b = lct.getResourceBundle(Locale.US);

    ImmutableMap<String, String> Config =
        ImmutableMap.<String, String>builder().put("googlePropertiesVersion", "3")
            .put("authtype", "ANONYMOUS").put("hostname", "ldap.realistic-looking-domain.com")
            .put("googleConnectorName", "x").put("password", "test").put("username", "admin")
            .put("schema_9", "employeestatus").put("schema_8", "employeenumber")
            .put("method", "STANDARD").put("basedn", "ou=people,dc=example,dc=com")
            .put("filter", "ou=people").build();

    ConfigureResponse cr = lct.getPopulatedConfigForm(Config, Locale.US);

    Map<String, String> configData = cr.getConfigData();
    assertTrue(configData == null || configData.isEmpty());

    String message = cr.getMessage();
    assertTrue(message == null || message.length() < 1);

    HtmlUnitTestPage htmlUnitPage = new HtmlUnitTestPage(cr);
    assertTrue(htmlUnitPage.getWebClient().isJavaScriptEnabled());

    HtmlHiddenInput hiddenSchemaValueField =
        htmlUnitPage.getHtmlForm().getInputByName("schemavalue");
    assertEquals("[\"dn\",\"employeenumber\",\"employeestatus\"]",
        hiddenSchemaValueField.getValueAttribute());
    HtmlCheckBoxInput chkFieldDnBefore = htmlUnitPage.getHtmlForm().getInputByValue("dn");
    assertTrue(chkFieldDnBefore.isChecked());
    HtmlCheckBoxInput chkField1Before =
        htmlUnitPage.getHtmlForm().getInputByValue("employeenumber");
    assertTrue(chkField1Before.isChecked());
    HtmlCheckBoxInput chkField2Before =
        htmlUnitPage.getHtmlForm().getInputByValue("employeestatus");
    assertTrue(chkField2Before.isChecked());

    HtmlPage pageAfterclick = chkFieldDnBefore.click();

    hiddenSchemaValueField = htmlUnitPage.getHtmlForm().getInputByName("schemavalue");
    assertEquals("[\"dn\",\"employeenumber\",\"employeestatus\"]",
        hiddenSchemaValueField.getValueAttribute());
    HtmlCheckBoxInput chkFieldDnAfter = htmlUnitPage.getHtmlForm().getInputByValue("dn");
    assertTrue(chkFieldDnAfter.isChecked());

    HtmlCheckBoxInput chkField1After =
        htmlUnitPage.getHtmlForm().getInputByValue("employeenumber");
    assertTrue(chkField1After.isChecked());
    HtmlCheckBoxInput chkField2After =
        htmlUnitPage.getHtmlForm().getInputByValue("employeestatus");
    assertTrue(chkField2After.isChecked());

    htmlUnitPage.getWebClient().closeAllWindows();

  }
}
TOP

Related Classes of com.google.enterprise.connector.ldap.LdapConnectorTypeHtmlunitTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.