/* * JacORB - a free Java ORB * * Copyright (C) 1997-2014 Gerald Brose / The JacORB Team. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ package org.jacorb.test.bugs.bug380; import static org.junit.Assert.assertTrue; import java.io.PrintWriter; import java.io.StringWriter; import java.util.Properties; import org.jacorb.orb.Delegate; import org.jacorb.orb.ParsedIOR; import org.jacorb.orb.util.PrintIOR; import org.jacorb.test.BasicServerHelper; import org.jacorb.test.harness.ORBTestCase; import org.jacorb.test.harness.TestUtils; import org.junit.Test; import org.omg.CORBA.Policy; import org.omg.CORBA.portable.ObjectImpl; import org.omg.PortableServer.IdAssignmentPolicyValue; import org.omg.PortableServer.POA; import org.omg.PortableServer.POAHelper; import org.omg.PortableServer.POAPackage.AdapterAlreadyExists; import org.omg.PortableServer.POAPackage.InvalidPolicy; import org.omg.PortableServer.POAPackage.WrongPolicy; /** * @author Alphonse Bendt */ public class BugJac380Test extends ORBTestCase { @Test public void testSetIORProxyHostToIP() throws Exception { Properties props = new Properties(); props.setProperty("jacorb.ior_proxy_host", "192.168.1.1"); final String profileDetails = getProfileDetails(props); assertTrue(profileDetails, profileDetails.indexOf("192.168.1.1") >= 0); } @Test public void testSetIORProxy_DNSEnabled() throws Exception { Properties props = new Properties(); props.setProperty("jacorb.ior_proxy_host", "localhost"); props.setProperty("jacorb.dns.enable", "on"); final String profileDetails = getProfileDetails(props); // Really this should be returning "localhost" in the IOR but Windows appears // not to do that and always returns "127.0.0.1". assertTrue(profileDetails, (TestUtils.isWindows() ? profileDetails.indexOf("127.0.0.1") >= 0 : profileDetails.indexOf("localhost") >= 0)); } @Test public void testSetIORProxy_DNSDisabled() throws Exception { Properties props = new Properties(); props.setProperty("jacorb.ior_proxy_host", "localhost"); props.setProperty("jacorb.dns.enable", "off"); final String profileDetails = getProfileDetails(props); assertTrue(profileDetails, profileDetails.indexOf("127.0.0.1") >= 0); } /** * create a reference and return its details as string printed using dior. */ private String getProfileDetails(Properties props) throws Exception, InvalidPolicy, AdapterAlreadyExists, WrongPolicy { // Clear the original ORB so we can create a new one with different properties. org.omg.CORBA.ORB orb = this.getAnotherORB(props); rootPOA = POAHelper.narrow(orb.resolve_initial_references( "RootPOA" )); rootPOA.the_POAManager().activate(); POA testPOA = rootPOA.create_POA("MyPOA", rootPOA.the_POAManager(), new Policy[] {rootPOA.create_id_assignment_policy(IdAssignmentPolicyValue.USER_ID)}); byte[] key = new byte[] {1, 2, 3, 4}; org.omg.CORBA.Object object = testPOA.create_reference_with_id(key, BasicServerHelper.id()); ObjectImpl objectImpl = (ObjectImpl) object; Delegate delegate = (Delegate) objectImpl._get_delegate(); ParsedIOR parsedIOR = delegate.getParsedIOR(); StringWriter out = new StringWriter(); final PrintWriter printWriter = new PrintWriter(out); PrintIOR.printIOR(orb, parsedIOR, printWriter); printWriter.close(); return out.toString(); } }