From ea42d6fedbe0e622bdbd4984ca8f1b14d201c1bd Mon Sep 17 00:00:00 2001 From: Purodha Blissenbach Date: Thu, 20 Sep 2012 20:24:55 +0200 Subject: [PATCH] More domainoptions preemptively preset in data base, existing options renmend ( no no-), tests universalized. --- hsarback/database/data.sql | 12 +- hsarback/database/database_update.sql | 43 ------- .../test/de/hsadmin/remote/DomainTest.java | 121 +++++++++--------- 3 files changed, 70 insertions(+), 106 deletions(-) diff --git a/hsarback/database/data.sql b/hsarback/database/data.sql index dd710b6..c91a7fc 100644 --- a/hsarback/database/data.sql +++ b/hsarback/database/data.sql @@ -155,6 +155,14 @@ INSERT INTO unixuser (name, comment, shell, homedir, locked, packet_id, userid) -- table: domain_option -- INSERT INTO domain_option (domain_option_name) - VALUES ('nogreylisting'); + VALUES ('backupmxforexternalmx'); +INSERT INTO domain_option (domain_option_name) + VALUES ('greylisting'); INSERT INTO domain_option (domain_option_name) - VALUES ('nohtdocsfallback'); + VALUES ('htdocsfallback'); +INSERT INTO domain_option (domain_option_name) + VALUES ('includes'); +INSERT INTO domain_option (domain_option_name) + VALUES ('indexes'); +INSERT INTO domain_option (domain_option_name) + VALUES ('multiviews'); diff --git a/hsarback/database/database_update.sql b/hsarback/database/database_update.sql index 9715a87..e69de29 100644 --- a/hsarback/database/database_update.sql +++ b/hsarback/database/database_update.sql @@ -1,43 +0,0 @@ -CREATE SEQUENCE domain_option_id_seq - INCREMENT BY 1 - NO MAXVALUE - NO MINVALUE - CACHE 1; - -CREATE TABLE domain_option ( - domain_option_id integer DEFAULT nextval(('"domain_option_id_seq"'::text)::regclass) NOT NULL, - domain_option_name character varying(50) NOT NULL -); - -ALTER TABLE ONLY domain_option - ADD CONSTRAINT domain_option_uniq UNIQUE (domain_option_id); - -CREATE UNIQUE INDEX ON domain_option ( domain_option_name ); - -CREATE TABLE domain__domain_option ( - domain_option_id integer NOT NULL, - domain_id integer NOT NULL -); - -CREATE UNIQUE INDEX unique_domain__domain_option ON domain__domain_option USING btree (domain_option_id, domain_id); - -ALTER TABLE ONLY domain__domain_option - ADD CONSTRAINT domain_option_id_fkey FOREIGN KEY (domain_option_id) - REFERENCES domain_option(domain_option_id) DEFERRABLE; - -ALTER TABLE ONLY domain__domain_option - ADD CONSTRAINT domain_id_fkey FOREIGN KEY (domain_id) - REFERENCES domain(domain_id) DEFERRABLE; - -update domain set domain_since=domain_filed; - -alter table domain drop column domain_free; -alter table domain drop column domain_until; -alter table domain drop column domain_filed; -alter table domain drop column domain_reminder; -alter table domain drop column domain_template; -alter table domain drop column domain_status; -alter table domain drop column domain_status_changed; - - - diff --git a/hsarback/test/de/hsadmin/remote/DomainTest.java b/hsarback/test/de/hsadmin/remote/DomainTest.java index c84540b..e0e7972 100644 --- a/hsarback/test/de/hsadmin/remote/DomainTest.java +++ b/hsarback/test/de/hsadmin/remote/DomainTest.java @@ -163,7 +163,7 @@ public class DomainTest { Map setParams = new HashMap(); Map whereParams = new HashMap(); List optionslist = new ArrayList(); - optionslist.add("nogreylisting"); + optionslist.add("greylisting"); setParams.put("domainoptions", optionslist); whereParams.put("name", "example01.org"); Object[] params = new Object[] { user, @@ -184,8 +184,8 @@ public class DomainTest { Map setParams = new HashMap(); Map whereParams = new HashMap(); List optionslist = new ArrayList(); - optionslist.add("nohtdocsfallback"); - optionslist.add("nogreylisting"); + optionslist.add("htdocsfallback"); + optionslist.add("greylisting"); setParams.put("domainoptions", optionslist); whereParams.put("name", "example01.org"); Object[] params = new Object[] { user, @@ -221,44 +221,66 @@ public class DomainTest { } @Test - public void testNogreylisting() throws UnknownHostException, IOException { - testNogreylistingOnOff(true, "Nogreylisting zuerst an"); - testNogreylistingOnOff(false, "Nogreylisting als zweites aus"); - testNogreylistingOnOff(true, "Nogreylisting zuletzt wieder an"); - } - - public void testNogreylistingOnOff(boolean onoff, String message) throws UnknownHostException, IOException { - String user = "aaa00"; - String domain = "example01.org"; - String grantingTicketURL = cas.getGrantingTicketURL(user); - Map setParams = new HashMap(); - Map whereParams = new HashMap(); - List optionslist = new ArrayList(); - if(onoff) { - optionslist.add("nogreylisting"); - } - setParams.put("domainoptions", optionslist); - whereParams.put("name", domain); - Object[] params = new Object[] { user, - cas.getServiceTicket(grantingTicketURL, RemoteTestHelper.getBackendURL()), - setParams, whereParams }; - try { - Object execute = client.execute(MODULE + ".update", params); - assertNotNull(execute); - assertEquals(message, onoff, getNogreylisting(domain)); - } catch (XmlRpcException e) { - } + public void testGreylisting() throws UnknownHostException, IOException { + testGreylistingOnOff(true, "zuerst an"); + testGreylistingOnOff(false, "als zweites aus"); + testGreylistingOnOff(true, "zuletzt wieder an"); } @Test - public void testNohtdocsfallback() throws UnknownHostException, IOException { - testNohtdocsfallbackOnOff(false, "Nothdocsfallback zuerst aus"); - testNohtdocsfallbackOnOff(true, "Nothdocsfallback als zweites an"); - testNohtdocsfallbackOnOff(false, "Nothdocsfallback zuletzt wieder aus"); + public void testHtdocsfallback() throws UnknownHostException, IOException { + testHtdocsfallbackOnOff(false, "zuerst aus"); + testHtdocsfallbackOnOff(true, "als zweites an"); + testHtdocsfallbackOnOff(false, "zuletzt wieder aus"); + } + + private void testGreylistingOnOff(boolean onoff, String message) + throws UnknownHostException, IOException { + testDomainptionOnOf(onoff, message, new DomainOptionTester() { + + @Override + public String getOptionName() { + return "greylisting"; + } + + @Override + public boolean isOptionConfigured(String domain) + throws UnknownHostException, IOException { + String host = "test-h99.hostsharing.net"; + String answer = socketQuery( host, 25, + "HELO " + domain + "\n" + + "MAIl FROM: hsadmin-testing@" + domain + "\n" + + "RCPT TO: postmaster@" + domain + "\n" + + "DATA\n" + + ".\n") ; + return answer.contains("450") && answer.contains("reylisting"); + } + }); + } + + private void testHtdocsfallbackOnOff(boolean onoff, String message) + throws UnknownHostException, IOException { + testDomainptionOnOf(onoff, message, new DomainOptionTester() { + + @Override + public String getOptionName() { + return "htdocsfallback"; + } + + @Override + public boolean isOptionConfigured(String domain) + throws UnknownHostException, IOException { + String host = "test-h99.hostsharing.net"; + String answer = socketQuery(host, 80, "GET / HTTP/1.1\n" + + "Host: x.y.z." + domain + + "User-Agent: hsAdmin Test\n" + "Connection: close\n"); + answer = answer.substring(0, answer.indexOf("\n")); + return answer.contains("404"); + } + }); } - @Test - public void testNohtdocsfallbackOnOff( boolean onoff, String message) throws UnknownHostException, IOException { + private void testDomainptionOnOf( boolean onoff, String message, DomainOptionTester tester) throws UnknownHostException, IOException { String user = "aaa00"; String domain = "example01.org"; String grantingTicketURL = cas.getGrantingTicketURL(user); @@ -266,7 +288,7 @@ public class DomainTest { Map whereParams = new HashMap(); List optionslist = new ArrayList(); if(onoff) { - optionslist.add("nohtdocsfallback"); + optionslist.add(tester.getOptionName()); } setParams.put("domainoptions", optionslist); whereParams.put("name", domain); @@ -276,12 +298,11 @@ public class DomainTest { try { Object execute = client.execute(MODULE + ".update", params); assertNotNull(execute); - assertEquals(message, onoff, getNohtdocsfallback(domain)); + assertEquals(tester.getOptionName()+": "+message, onoff, tester.isOptionConfigured(domain)); } catch (XmlRpcException e) { } } - private int getDomsCount() { int count = 0; String user = "aaa00"; @@ -328,28 +349,6 @@ public class DomainTest { return count; } - private boolean getNogreylisting(String domain) throws UnknownHostException, IOException { - String host = "test-h99.hostsharing.net"; - String answer = socketQuery( host, 25, - "HELO " + domain + "\n" + - "MAIl FROM: hsadmin-testing@" + domain + "\n" + - "RCPT TO: postmaster@" + domain + "\n" + - "DATA\n" + - ".\n") ; - return answer.contains("450") && answer.contains("reylisting"); - } - - private boolean getNohtdocsfallback(String domain) throws UnknownHostException, IOException { - String host = "test-h99.hostsharing.net"; - String answer = socketQuery( host, 80, - "GET / HTTP/1.1\n" + - "Host: x.y.z." + domain + - "User-Agent: hsAdmin Test\n" + - "Connection: close\n"); - answer = answer.substring(0, answer.indexOf("\n")); - return answer.contains("404"); - } - private String socketQuery( String host, int port, String query) throws UnknownHostException, IOException{ Socket socket = new Socket( host, port ); socketQueryWriter( socket, query );