[kune-commits] r1146 - in trunk: . src/main/java/com/google/gwt/wave/client src/main/java/com/google/gwt/wave/public src/main/java/org/ourproject/kune/app/public/css src/main/java/org/ourproject/kune/chat/client src/main/java/org/ourproject/kune/platf/client/ui/img src/main/java/org/ourproject/kune/platf/client/ui/rte/img src/main/java/org/ourproject/kune/workspace/client/cnt src/test/java/org/ourproject/kune/platf/integration/selenium war/WEB-INF
vjrj
vjrj at ourproject.org
Tue Mar 30 02:17:04 CEST 2010
Author: vjrj
Date: 2010-03-30 02:17:04 +0200 (Tue, 30 Mar 2010)
New Revision: 1146
Added:
trunk/src/main/java/com/google/gwt/wave/public/README
trunk/src/main/java/com/google/gwt/wave/public/wave_embed.js-pre2.0.0
trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/ContentAddSeleniumTest.java.txt
trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/EntityLogoSeleniumTest.java.txt
trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/KuneSeleniumTestHelper.java.txt
trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/NewGroupSeleniumTest.java.txt
trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SeleniumTestHelper.java.txt
trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java.txt
trunk/war/WEB-INF/localhost.cer
trunk/war/WEB-INF/localhost.key
Removed:
trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/ContentAddSeleniumTest.java
trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/EntityLogoSeleniumTest.java
trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/KuneSeleniumTestHelper.java
trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/NewGroupSeleniumTest.java
trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SeleniumTestHelper.java
trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java
Modified:
trunk/TODO
trunk/pom.xml
trunk/src/main/java/com/google/gwt/wave/client/WaveEmbed.java
trunk/src/main/java/com/google/gwt/wave/client/WaveWidget.java
trunk/src/main/java/com/google/gwt/wave/public/wave_embed.js
trunk/src/main/java/org/ourproject/kune/app/public/css/workspace.css
trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineDefault.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/kimg.css
trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/RTEImgResources.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/rteimg.css
trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPanel.java
Log:
some gwt and wave updates
Modified: trunk/TODO
===================================================================
--- trunk/TODO 2009-12-26 06:18:15 UTC (rev 1145)
+++ trunk/TODO 2010-03-30 00:17:04 UTC (rev 1146)
@@ -147,6 +147,7 @@
** danigb,vjrj URLs public/workspace braimstorming
Read this -> http://googlewebmastercentral.blogspot.com/2009/10/proposal-for-making-ajax-crawlable.html
+http://stackoverflow.com/questions/2430244/making-gwt-application-crawlable-by-a-search-engine
Nowadays:
- ws: #group.tool.container.content
- public (prov): /public/group.tool.container.content.
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2009-12-26 06:18:15 UTC (rev 1145)
+++ trunk/pom.xml 2010-03-30 00:17:04 UTC (rev 1146)
@@ -72,7 +72,7 @@
<dependency>
<groupId>com.allen_sauer.gwt.log.gwt-log</groupId>
<artifactId>gwt-log</artifactId>
- <version>2.6.2</version>
+ <version>3.0.1</version>
</dependency>
<dependency>
<groupId>com.allen_sauer.gwt.voices.gwt-voices</groupId>
@@ -94,7 +94,7 @@
<dependency>
<groupId>com.calclab</groupId>
<artifactId>suco</artifactId>
- <version>0.6.1</version>
+ <version>0.6.5</version>
</dependency>
<dependency>
<groupId>jmagick</groupId>
@@ -263,18 +263,16 @@
<version>1.7.0.0</version>
</dependency>
- <!-- jetty dependencies -->
- <!-- <dependency>-->
- <!-- <groupId>org.mortbay.jetty</groupId>-->
- <!-- <artifactId>jetty-util</artifactId>-->
- <!-- <version>6.1.11</version>-->
- <!-- -->
- <!-- <version>7.0.0.pre5</version>-->
- <!-- -->
- <!-- <scope>provided</scope>-->
- <!-- </dependency>-->
+<!-- jetty dependencies -->
<dependency>
<groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty-util</artifactId>
+ <version>6.1.11</version>
+<!-- <version>7.0.0.pre5</version>-->
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<!-- <artifactId>jetty-maven-plugin</artifactId>-->
<!-- <version>7.0.0.1beta0</version>-->
@@ -292,6 +290,7 @@
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
+ <scope>test</scope>
<version>1.6</version>
</dependency>
<dependency>
@@ -308,12 +307,12 @@
<scope>test</scope>
-->
</dependency>
- <dependency>
- <groupId>org.openqa.selenium.client-drivers</groupId>
- <artifactId>selenium-java-client-driver</artifactId>
- <version>1.0-beta-1</version>
- <scope>test</scope>
- </dependency>
+<!-- <dependency>-->
+<!-- <groupId>org.openqa.selenium.client-drivers</groupId>-->
+<!-- <artifactId>selenium-java-client-driver</artifactId>-->
+<!-- <version>1.0-beta-1</version>-->
+<!-- <scope>test</scope>-->
+<!-- </dependency>-->
<!-- public side -->
<dependency>
@@ -558,7 +557,7 @@
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
<!-- http://mojo.codehaus.org/gwt-maven-plugin/index.html -->
- <version>1.2-SNAPSHOT</version>
+ <version>1.2</version>
<executions>
<execution>
<configuration>
@@ -592,10 +591,8 @@
</plugin>
<plugin>
<groupId>org.mortbay.jetty</groupId>
- <!--
- <artifactId>jetty-maven-plugin</artifactId>
- <version>7.0.0.1beta0</version>
- -->
+<!-- <artifactId>jetty-maven-plugin</artifactId>-->
+<!-- <version>7.0.0.1beta0</version>-->
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.11</version> <configuration>
<contextPath>/</contextPath>
@@ -699,25 +696,25 @@
</execution>
</executions>
</plugin>
+<!-- <plugin>-->
+<!-- <groupId>org.codehaus.mojo</groupId>-->
+<!-- <artifactId>selenium-maven-plugin</artifactId>-->
+<!-- <configuration>-->
+<!-- <port>4441</port>-->
+<!-- </configuration>-->
+<!-- <executions>-->
+<!-- <execution>-->
+<!-- <phase>pre-integration-test</phase>-->
+<!-- <goals>-->
+<!-- <goal>start-server</goal>-->
+<!-- </goals>-->
+<!-- <configuration>-->
+<!-- <background>true</background>-->
+<!-- </configuration>-->
+<!-- </execution>-->
+<!-- </executions>-->
+<!-- </plugin>-->
<plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>selenium-maven-plugin</artifactId>
- <configuration>
- <port>4441</port>
- </configuration>
- <executions>
- <execution>
- <phase>pre-integration-test</phase>
- <goals>
- <goal>start-server</goal>
- </goals>
- <configuration>
- <background>true</background>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
Modified: trunk/src/main/java/com/google/gwt/wave/client/WaveEmbed.java
===================================================================
--- trunk/src/main/java/com/google/gwt/wave/client/WaveEmbed.java 2009-12-26 06:18:15 UTC (rev 1145)
+++ trunk/src/main/java/com/google/gwt/wave/client/WaveEmbed.java 2010-03-30 00:17:04 UTC (rev 1146)
@@ -9,128 +9,146 @@
final class WaveEmbed extends JavaScriptObject {
- protected WaveEmbed() {
- // Required by JavaScriptObject types
- }
+ /**
+ * Creates a new WaveEmbed using the default Wave server URL:
+ * <code>http://wave-devel.corp.google.com/a/google.com/</code>
+ */
+ public static native WaveEmbed newInstance() /*-{
+ return new $wnd.WavePanel();
+ }-*/;
- // Undocumented:
- // loadSearch
- // setContactProvider
- // provideContacts
+ // Undocumented:
+ // loadSearch
+ // setContactProvider
+ // provideContacts
- // Not yet available:
- // addParticipant
- // addReply
-
- /**
- * Creates a new WaveEmbed using the default Wave server URL:
- * <code>http://wave-devel.corp.google.com/a/google.com/</code>
- */
- public static native WaveEmbed newInstance() /*-{
- return new $wnd.WavePanel();
- }-*/;
+ // Not yet available:
+ // addParticipant
+ // addReply
- /**
- * Creates a new WaveEmbed using the specified Wave server URL.
- *
- * @param serverURL The URL of the Wave server to use
- */
- public static native WaveEmbed newInstance(String serverURL) /*-{
- return new $wnd.WavePanel(serverURL);
- }-*/;
+ /**
+ * Creates a new WaveEmbed using the specified Wave server URL.
+ *
+ * @param serverURL
+ * The URL of the Wave server to use
+ */
+ public static native WaveEmbed newInstance(String serverURL) /*-{
+ // http://code.google.com/p/google-wave-resources/issues/detail?id=486
+ var nwave = new $wnd.WavePanel(serverURL);
+ var uiConfig = new $wnd.WavePanel.UIConfig();
+ uiConfig.setFooterEnabled(true);
+ uiConfig.setHeaderEnabled(true);
+ uiConfig.setToolbarEnabled(true);
+ nwave.setUIConfigObject(uiConfig);
+ return nwave;
+ }-*/;
- /**
- * Set the UI configuration for the wave. This must be done before init() is
- * called. Note that fontSize must be expressed in points, such as "12pts".
- *
- * @param bgColor
- * @param color
- * @param font
- * @param fontSize
- */
- public native void setUIConfig(String bgColor, String color, String font,
- String fontSize) /*-{
- this.setUIConfig(bgColor, color, font, fontSize);
- }-*/;
+ // Called from JSNI
+ @SuppressWarnings("unused")
+ private static void fireWaveLoadEvent(final HasWaveLoadHandlers source, final String waveId) {
+ final UncaughtExceptionHandler ueh = GWT.getUncaughtExceptionHandler();
+ final WaveLoadEvent event = new WaveLoadEvent(waveId);
- /**
- * Actually creates the wave >iframe> inside the given container. This is
- * not done in the constructor so the caller can set various initialization
- * options before the creation.
- *
- * @param container The container element which will hold the Wave >IFRAME>
- */
- public native void init(Element container) /*-{
- this.init(container);
- }-*/;
+ if (ueh != null) {
+ try {
+ source.fireEvent(event);
+ } catch (final Exception ex) {
+ ueh.onUncaughtException(ex);
+ }
+ } else {
+ source.fireEvent(event);
+ }
+ }
- /**
- * Loads the given wave into the wavePanel. This can be called before or after
- * init.
- *
- * @param waveId The Id of the Wave to load
- */
- public native void loadWave(String waveId) /*-{
- this.loadWave(waveId);
- }-*/;
+ protected WaveEmbed() {
+ // Required by JavaScriptObject types
+ }
- /**
- * Loads the given wave into the wavePanel. This can be called before or after
- * init.
- *
- * @param source An instance of HasWaveLoadHandlers where the WaveLoadEvent
- * will be dispatched from
- * @param waveId The Id of the Wave to load
- */
- public native void loadWave(HasWaveLoadHandlers source, String waveId) /*-{
- this.loadWave(waveId, function() {
+ /**
+ * Adds the current user as a participant to the wave.
+ * <p>
+ * NOTE: Not yet functional in developer sandbox!
+ */
+ public native void addParticipant() /*-{
+ this.addParticipant();
+ }-*/;
+
+ /**
+ * Adds a reply to the currently loaded wave. An empty reply will be added
+ * to the wave.
+ * <p>
+ * NOTE: Not yet functional in developer sandbox!
+ */
+ public native void addReply() /*-{
+ this.addReply();
+ }-*/;
+
+ /**
+ * Returns the ID of the created <iframe>
+ *
+ * @return the ID of the created <iframe>
+ */
+ public native String getFrameId() /*-{
+ return this.getFrameId();
+ }-*/;
+
+ /**
+ * Actually creates the wave >iframe> inside the given container. This is
+ * not done in the constructor so the caller can set various initialization
+ * options before the creation.
+ *
+ * @param container
+ * The container element which will hold the Wave >IFRAME>
+ */
+ public native void init(Element container) /*-{
+ this.init(container);
+ }-*/;
+
+ /**
+ * Loads the given wave into the wavePanel. This can be called before or
+ * after init.
+ *
+ * @param source
+ * An instance of HasWaveLoadHandlers where the WaveLoadEvent
+ * will be dispatched from
+ * @param waveId
+ * The Id of the Wave to load
+ */
+ public native void loadWave(HasWaveLoadHandlers source, String waveId) /*-{
+ this.loadWave(waveId, function() {
@com.google.gwt.wave.client.WaveEmbed::fireWaveLoadEvent(Lcom/google/gwt/wave/client/event/HasWaveLoadHandlers;Ljava/lang/String;)(source, waveId);
- })
- }-*/;
+ })
+ }-*/;
- // Called from JSNI
- @SuppressWarnings("unused")
- private static void fireWaveLoadEvent(HasWaveLoadHandlers source,
- String waveId) {
- UncaughtExceptionHandler ueh = GWT.getUncaughtExceptionHandler();
- WaveLoadEvent event = new WaveLoadEvent(waveId);
+ /**
+ * Loads the given wave into the wavePanel. This can be called before or
+ * after init.
+ *
+ * @param waveId
+ * The Id of the Wave to load
+ */
+ public native void loadWave(String waveId) /*-{
+ this.loadWave(waveId);
+ }-*/;
- if (ueh != null) {
- try {
- source.fireEvent(event);
- } catch (Exception ex) {
- ueh.onUncaughtException(ex);
- }
- } else {
- source.fireEvent(event);
- }
- }
+ public native void setEditMode(boolean value) /*-{
+ this.setEditMode(value);
+ }-*/;
- /**
- * Returns the ID of the created <iframe>
- *
- * @return the ID of the created <iframe>
- */
- public native String getFrameId() /*-{
- return this.getFrameId();
- }-*/;
+ public native void setToolbarVisible(boolean value) /*-{
+ this.setToolbarVisible(value);
+ }-*/;
- /**
- * Adds the current user as a participant to the wave.
- * <p>
- * NOTE: Not yet functional in developer sandbox!
- */
- public native void addParticipant() /*-{
- this.addParticipant();
- }-*/;
-
- /**
- * Adds a reply to the currently loaded wave. An empty reply will be added to
- * the wave.
- * <p>
- * NOTE: Not yet functional in developer sandbox!
- */
- public native void addReply() /*-{
- this.addReply();
- }-*/;
+ /**
+ * Set the UI configuration for the wave. This must be done before init() is
+ * called. Note that fontSize must be expressed in points, such as "12pts".
+ *
+ * @param bgColor
+ * @param color
+ * @param font
+ * @param fontSize
+ */
+ public native void setUIConfig(String bgColor, String color, String font, String fontSize) /*-{
+ this.setUIConfig(bgColor, color, font, fontSize);
+ }-*/;
}
Modified: trunk/src/main/java/com/google/gwt/wave/client/WaveWidget.java
===================================================================
--- trunk/src/main/java/com/google/gwt/wave/client/WaveWidget.java 2009-12-26 06:18:15 UTC (rev 1145)
+++ trunk/src/main/java/com/google/gwt/wave/client/WaveWidget.java 2010-03-30 00:17:04 UTC (rev 1146)
@@ -18,6 +18,16 @@
this.waveEmbed = WaveEmbed.newInstance(waveServer);
}
+ // Package protected until this is functional on the developer sandbox
+ public void addParticipant() {
+ waveEmbed.addParticipant();
+ }
+
+ // Package protected until this is functional on the developer sandbox
+ public void addReply() {
+ waveEmbed.addReply();
+ }
+
public HandlerRegistration addWaveLoadHandler(final WaveLoadHandler handler) {
return addHandler(handler, WaveLoadEvent.getType());
}
@@ -35,6 +45,14 @@
waveEmbed.init(getElement());
}
+ public void setEditMode(final boolean value) {
+ waveEmbed.setEditMode(value);
+ }
+
+ public void setToolbarVisible(final boolean value) {
+ waveEmbed.setToolbarVisible(value);
+ }
+
/**
* Set the UI configuration for the wave. This must be done before the panel
* is attached to the page.
@@ -53,13 +71,4 @@
waveEmbed.setUIConfig(bgColor, color, font, fontSize);
}
- // Package protected until this is functional on the developer sandbox
- void addParticipant() {
- waveEmbed.addParticipant();
- }
-
- // Package protected until this is functional on the developer sandbox
- void addReply() {
- waveEmbed.addReply();
- }
}
Added: trunk/src/main/java/com/google/gwt/wave/public/README
===================================================================
--- trunk/src/main/java/com/google/gwt/wave/public/README (rev 0)
+++ trunk/src/main/java/com/google/gwt/wave/public/README 2010-03-30 00:17:04 UTC (rev 1146)
@@ -0,0 +1 @@
+wget http://wave-api.appspot.com/public/embed.js
Modified: trunk/src/main/java/com/google/gwt/wave/public/wave_embed.js
===================================================================
--- trunk/src/main/java/com/google/gwt/wave/public/wave_embed.js 2009-12-26 06:18:15 UTC (rev 1145)
+++ trunk/src/main/java/com/google/gwt/wave/public/wave_embed.js 2010-03-30 00:17:04 UTC (rev 1146)
@@ -1,23 +1,22 @@
-// embed.js retreived from http://wave-api.appspot.com/public/embed.js on 2009-06-02
var a, WAVEPANEL_nextId = 0;
-if(typeof gadgets == "undefined" || !gadgets.rpc)document.write('<script src="http://wave.google.com/gadgets/js/core:rpc?debug=1&c=1" type="text/javascript"><\/script>');
+if(typeof gadgets == "undefined" || !gadgets.rpc)document.write('<script src="https://wave.google.com/gadgets/js/core:rpc?debug=1&c=1" type="text/javascript"><\/script>');
function WavePanel(b) {
this.id_ = WAVEPANEL_nextId++;
this.frameId_ = "iframe_panel_" + this.id_;
this.eventListeners_ = {};
this.init_ = false;
- this.waveRootUrl = b || "http://wave-devel.corp.google.com/a/google.com/"
+ this.waveRootUrl = b || "https://wave.google.com/a/wavesandbox.com/"
}
WavePanel.prototype.getId = function() {
return this.id_
};
WavePanel.prototype.setContactProvider = function(b) {
- if(this.init_)throw"Can only set contact provider before calling init";this.contactProvider_ = b
+ if(this.init_)throw"Can only set profile provider before calling init";this.profileProvider_ = b
};
WavePanel.prototype.init = function(b, c) {
this.init_ = true;
if(this.initWaveId_ && this.initSearch_)throw"Both an initial wave ID and a search were specified";this.setupRpc_(c);
- this.createFrame_(b, this.contactProvider_, this.initWaveId_, this.initSearch_, this.uiConfig_);
+ this.createFrame_(b);
gadgets.rpc.setRelayUrl(this.getFrameId(), this.getRelayUrl_(), false);
delete this.initSearch_;
delete this.initWaveId_
@@ -53,45 +52,53 @@
gadgets.rpc.register("load_wave_done", function() {
e(this)
});
- gadgets.rpc.register("request_contacts", function() {
- if(!c.contactProvider_)throw"Got a contacts request but no contact provider is set.";c.contactProvider_(this.a[0])
+ gadgets.rpc.register("digest_search_done", function() {
+ e(this)
});
+ gadgets.rpc.register("request_profiles", function() {
+ if(!c.profileProvider_)throw"Got a profiles request but no profile provider is set.";c.profileProvider_(this.a[0])
+ });
gadgets.rpc.registerDefault(function() {
- var d = this.s, f = this.a[0], h = c.eventListeners_[d];
- if(h)for(var g in h)h[g](f)
+ var d = this.s, f = this.a[0];
+ if(d = c.eventListeners_[d])for(var g in d)d[g](f)
})
}
};
-a.createFrame_ = function(b, c, e, d, f) {
- var h = document.createElement("div");
- h.innerHTML = '<iframe name="' + this.frameId_ + '" >';
- var g = h.firstChild;
- g.id = this.frameId_;
- g.width = "100%";
- g.height = "100%";
- g.frameBorder = "no";
- g.scrolling = "no";
- g.marginHeight = 0;
- g.marginWidth = 0;
- g.className = "embed-iframe";
- g.src = this.iframeUrl_(c, e, d, f);
+a.createFrame_ = function(b) {
+ var c = document.createElement("div");
+ c.innerHTML = '<iframe name="' + this.frameId_ + '" >';
+ c = c.firstChild;
+ c.id = this.frameId_;
+ c.width = "100%";
+ c.height = "100%";
+ c.frameBorder = "no";
+ c.scrolling = "no";
+ c.marginHeight = 0;
+ c.marginWidth = 0;
+ c.className = "embed-iframe";
+ c.src = this.iframeUrl_();
b = b || document.body;
- b.appendChild(g);
- return g
+ b.appendChild(c);
+ return c
};
-a.iframeUrl_ = function(b, c, e, d) {
- var f = [];
- f.push("client.type=embedded");
- f.push("parent=" + escape("http://" + window.location.host + window.location.pathname));
- b && f.push("ext_contacts=1");
- c && f.push("wave_id=" + encodeURIComponent(c));
- e && f.push("search_query=" + encodeURIComponent(e));
- if(d) {
- d.bgcolor && f.push("bgcolor=" + encodeURIComponent(d.bgcolor));
- d.color && f.push("color=" + encodeURIComponent(d.color));
- d.font && f.push("font=" + encodeURIComponent(d.font));
- d.fontsize && f.push("fontsize=" + encodeURIComponent(d.fontsize))
- }return this.waveRootUrl + "?" + f.join("&")
+a.iframeUrl_ = function() {
+ var b = [];
+ b.push("client.type=embedded");
+ b.push("parent=" + escape(window.location.protocol + "//" + window.location.host + window.location.pathname));
+ this.profileProvider_ && b.push("ext_profiles=1");
+ this.authToken_ && b.push("auth=" + encodeURIComponent(this.authToken_));
+ this.initWaveId_ && b.push("wave_id=" + encodeURIComponent(this.initWaveId_));
+ this.initSearch_ && b.push("search_query=" + encodeURIComponent(this.initSearch_));
+ if(this.uiConfig_) {
+ var c = this.uiConfig_;
+ b.push("bgcolor=" + encodeURIComponent(c.getBgcolor()));
+ b.push("color=" + encodeURIComponent(c.getColor()));
+ b.push("font=" + encodeURIComponent(c.getFont()));
+ b.push("fontsize=" + encodeURIComponent(c.getFontSize()));
+ b.push("embed_header=" + c.getHeaderEnabled());
+ b.push("embed_footer=" + c.getFooterEnabled());
+ b.push("embed_toolbar=" + c.getToolbarEnabled())
+ }return this.waveRootUrl + "?" + b.join("&")
};
a.addListener = function(b, c) {
var e = this.eventListeners_, d = e[b];
@@ -108,35 +115,44 @@
if(c && c.length > 0) {
var e = c[c.length - 1];
b = c[0] + "://";
- for(var d = 0;d < e.length;++d) {
- if(e[d] == "/")break;
- b += e[d]
+ for(c = 0;c < e.length;++c) {
+ if(e[c] == "/")break;
+ b += e[c]
}b += "/"
}return b + "gadgets/files/container/rpc_relay.html"
};
a.loadWave = function(b, c) {
if(this.init_) {
- var e = WavePanel.pushCallback_(c);
- gadgets.rpc.call(this.getFrameId(), "load_wave", null, e, b)
+ c = WavePanel.pushCallback_(c);
+ gadgets.rpc.call(this.getFrameId(), "load_wave", null, c, b)
}else this.initWaveId_ = b
};
a.loadSearch = function(b, c) {
if(this.init_) {
- var e = WavePanel.pushCallback_(c);
- gadgets.rpc.call(this.getFrameId(), "digest_search", null, e, b)
+ c = WavePanel.pushCallback_(c);
+ gadgets.rpc.call(this.getFrameId(), "digest_search", null, c, b)
}else this.initSearch_ = b
};
a.setUIConfig = function(b, c, e, d) {
- if(this.init_)throw"Cannot change the UIConfig after Init has been called.";else this.uiConfig_ = {bgcolor:b, color:c, font:e, fontsize:d}
+ if(this.init_)throw"Cannot change the UIConfig after Init has been called.";else {
+ if(!this.uiConfig_)this.uiConfig_ = new WavePanel.UIConfig;
+ this.uiConfig_.setBgcolor(b);
+ this.uiConfig_.setColor(c);
+ this.uiConfig_.setFont(e);
+ this.uiConfig_.setFontSize(d)
+ }
};
+a.setUIConfigObject = function(b) {
+ if(this.init_)throw"Cannot change the UIConfig after Init has been called.";else this.uiConfig_ = b
+};
a.addParticipant = function() {
if(!this.init_)throw"Init not called.";gadgets.rpc.call(this.getFrameId(), "add_participant", null, "")
};
a.addReply = function(b, c) {
- if(!this.init_)throw"Init not called.";var e = WavePanel.pushCallback_(c);
- gadgets.rpc.call(this.getFrameId(), "add_reply", null, e, b)
+ if(!this.init_)throw"Init not called.";c = WavePanel.pushCallback_(c);
+ gadgets.rpc.call(this.getFrameId(), "add_reply", null, c, b)
};
-a.provideContacts = function(b) {
+a.provideProfiles = function(b) {
if(!this.init_)throw"Init not called.";var c = [];
for(var e in b) {
var d = b[e];
@@ -145,5 +161,69 @@
c.push(d.lastName);
c.push(d.photoUrl)
}c.unshift(c.length / 4);
- gadgets.rpc.call(this.getFrameId(), "provide_contacts", null, c)
+ gadgets.rpc.call(this.getFrameId(), "provide_profiles", null, c)
};
+a.setAuthToken = function(b) {
+ this.authToken_ = b
+};
+a.setContacts = function(b) {
+ if(!this.init_)throw"Init not called.";gadgets.rpc.call(this.getFrameId(), "set_contacts", null, b)
+};
+a.setEditMode = function(b) {
+ if(!this.init_)throw"Init not called.";b = b ? "true" : "false";
+ gadgets.rpc.call(this.getFrameId(), "set_edit_mode", null, b)
+};
+a.setToolbarVisible = function(b) {
+ if(!this.init_)throw"Init not called.";b = b ? "true" : "false";
+ gadgets.rpc.call(this.getFrameId(), "set_toolbar_visible", null, b)
+};
+WavePanel.UIConfig = function() {
+ this.bgcolor_ = "transparent";
+ this.color_ = "black";
+ this.font_ = "Arial";
+ this.fontsize_ = "8pt";
+ this.toolbar_ = this.footer_ = this.header_ = false
+};
+a = WavePanel.UIConfig.prototype;
+a.getBgcolor = function() {
+ return this.bgcolor_
+};
+a.setBgcolor = function(b) {
+ this.bgcolor_ = b
+};
+a.getColor = function() {
+ return this.color_
+};
+a.setColor = function(b) {
+ this.color_ = b
+};
+a.getFont = function() {
+ return this.font_
+};
+a.setFont = function(b) {
+ this.font_ = b
+};
+a.getFontSize = function() {
+ return this.fontsize_
+};
+a.setFontSize = function(b) {
+ this.fontsize_ = b
+};
+a.getHeaderEnabled = function() {
+ return this.header_
+};
+a.setHeaderEnabled = function(b) {
+ this.header_ = b
+};
+a.getFooterEnabled = function() {
+ return this.footer_
+};
+a.setFooterEnabled = function(b) {
+ this.footer_ = b
+};
+a.getToolbarEnabled = function() {
+ return this.toolbar_
+};
+a.setToolbarEnabled = function(b) {
+ this.toolbar_ = b
+};
Added: trunk/src/main/java/com/google/gwt/wave/public/wave_embed.js-pre2.0.0
===================================================================
--- trunk/src/main/java/com/google/gwt/wave/public/wave_embed.js-pre2.0.0 (rev 0)
+++ trunk/src/main/java/com/google/gwt/wave/public/wave_embed.js-pre2.0.0 2010-03-30 00:17:04 UTC (rev 1146)
@@ -0,0 +1,149 @@
+// embed.js retreived from http://wave-api.appspot.com/public/embed.js on 2009-06-02
+var a, WAVEPANEL_nextId = 0;
+if(typeof gadgets == "undefined" || !gadgets.rpc)document.write('<script src="http://wave.google.com/gadgets/js/core:rpc?debug=1&c=1" type="text/javascript"><\/script>');
+function WavePanel(b) {
+ this.id_ = WAVEPANEL_nextId++;
+ this.frameId_ = "iframe_panel_" + this.id_;
+ this.eventListeners_ = {};
+ this.init_ = false;
+ this.waveRootUrl = b || "http://wave-devel.corp.google.com/a/google.com/"
+}
+WavePanel.prototype.getId = function() {
+ return this.id_
+};
+WavePanel.prototype.setContactProvider = function(b) {
+ if(this.init_)throw"Can only set contact provider before calling init";this.contactProvider_ = b
+};
+WavePanel.prototype.init = function(b, c) {
+ this.init_ = true;
+ if(this.initWaveId_ && this.initSearch_)throw"Both an initial wave ID and a search were specified";this.setupRpc_(c);
+ this.createFrame_(b, this.contactProvider_, this.initWaveId_, this.initSearch_, this.uiConfig_);
+ gadgets.rpc.setRelayUrl(this.getFrameId(), this.getRelayUrl_(), false);
+ delete this.initSearch_;
+ delete this.initWaveId_
+};
+WavePanel.rpcSetup_ = false;
+WavePanel.callbackQueue_ = {};
+WavePanel.nextCallbackId = 0;
+WavePanel.pushCallback_ = function(b) {
+ if(!b)return"";
+ var c = "" + WavePanel.nextCallbackId;
+ WavePanel.nextCallbackId++;
+ WavePanel.callbackQueue_[c] = b;
+ return c
+};
+WavePanel.popCallback_ = function(b) {
+ if(b == "")return null;
+ var c = WavePanel.callbackQueue_[b];
+ delete WavePanel.callbackQueue_[b];
+ return c
+};
+a = WavePanel.prototype;
+a.setupRpc_ = function(b) {
+ if(!this.rpcSetup_) {
+ this.rpcSetup_ = true;
+ var c = this;
+ gadgets.rpc.register("load_done", function() {
+ b && b()
+ });
+ var e = function(d) {
+ var f = WavePanel.popCallback_(d.a[0]);
+ f && f(d.a[1])
+ };
+ gadgets.rpc.register("load_wave_done", function() {
+ e(this)
+ });
+ gadgets.rpc.register("request_contacts", function() {
+ if(!c.contactProvider_)throw"Got a contacts request but no contact provider is set.";c.contactProvider_(this.a[0])
+ });
+ gadgets.rpc.registerDefault(function() {
+ var d = this.s, f = this.a[0], h = c.eventListeners_[d];
+ if(h)for(var g in h)h[g](f)
+ })
+ }
+};
+a.createFrame_ = function(b, c, e, d, f) {
+ var h = document.createElement("div");
+ h.innerHTML = '<iframe name="' + this.frameId_ + '" >';
+ var g = h.firstChild;
+ g.id = this.frameId_;
+ g.width = "100%";
+ g.height = "100%";
+ g.frameBorder = "no";
+ g.scrolling = "no";
+ g.marginHeight = 0;
+ g.marginWidth = 0;
+ g.className = "embed-iframe";
+ g.src = this.iframeUrl_(c, e, d, f);
+ b = b || document.body;
+ b.appendChild(g);
+ return g
+};
+a.iframeUrl_ = function(b, c, e, d) {
+ var f = [];
+ f.push("client.type=embedded");
+ f.push("parent=" + escape("http://" + window.location.host + window.location.pathname));
+ b && f.push("ext_contacts=1");
+ c && f.push("wave_id=" + encodeURIComponent(c));
+ e && f.push("search_query=" + encodeURIComponent(e));
+ if(d) {
+ d.bgcolor && f.push("bgcolor=" + encodeURIComponent(d.bgcolor));
+ d.color && f.push("color=" + encodeURIComponent(d.color));
+ d.font && f.push("font=" + encodeURIComponent(d.font));
+ d.fontsize && f.push("fontsize=" + encodeURIComponent(d.fontsize))
+ }return this.waveRootUrl + "?" + f.join("&")
+};
+a.addListener = function(b, c) {
+ var e = this.eventListeners_, d = e[b];
+ if(!d) {
+ d = [];
+ e[b] = d
+ }d.push(c)
+};
+a.getFrameId = function() {
+ return this.frameId_
+};
+a.getRelayUrl_ = function() {
+ var b = this.waveRootUrl, c = b.split("://");
+ if(c && c.length > 0) {
+ var e = c[c.length - 1];
+ b = c[0] + "://";
+ for(var d = 0;d < e.length;++d) {
+ if(e[d] == "/")break;
+ b += e[d]
+ }b += "/"
+ }return b + "gadgets/files/container/rpc_relay.html"
+};
+a.loadWave = function(b, c) {
+ if(this.init_) {
+ var e = WavePanel.pushCallback_(c);
+ gadgets.rpc.call(this.getFrameId(), "load_wave", null, e, b)
+ }else this.initWaveId_ = b
+};
+a.loadSearch = function(b, c) {
+ if(this.init_) {
+ var e = WavePanel.pushCallback_(c);
+ gadgets.rpc.call(this.getFrameId(), "digest_search", null, e, b)
+ }else this.initSearch_ = b
+};
+a.setUIConfig = function(b, c, e, d) {
+ if(this.init_)throw"Cannot change the UIConfig after Init has been called.";else this.uiConfig_ = {bgcolor:b, color:c, font:e, fontsize:d}
+};
+a.addParticipant = function() {
+ if(!this.init_)throw"Init not called.";gadgets.rpc.call(this.getFrameId(), "add_participant", null, "")
+};
+a.addReply = function(b, c) {
+ if(!this.init_)throw"Init not called.";var e = WavePanel.pushCallback_(c);
+ gadgets.rpc.call(this.getFrameId(), "add_reply", null, e, b)
+};
+a.provideContacts = function(b) {
+ if(!this.init_)throw"Init not called.";var c = [];
+ for(var e in b) {
+ var d = b[e];
+ c.push(e);
+ c.push(d.firstName);
+ c.push(d.lastName);
+ c.push(d.photoUrl)
+ }c.unshift(c.length / 4);
+ gadgets.rpc.call(this.getFrameId(), "provide_contacts", null, c)
+};
Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/workspace.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/css/workspace.css 2009-12-26 06:18:15 UTC (rev 1145)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/workspace.css 2010-03-30 00:17:04 UTC (rev 1146)
@@ -549,6 +549,7 @@
.kune-EditableLabel-high {
background-color: #FFFBC1;
cursor: pointer;
+ cursor: hand;
}
.kune-EditableLabel-high span {
Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineDefault.java 2009-12-26 06:18:15 UTC (rev 1145)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineDefault.java 2010-03-30 00:17:04 UTC (rev 1146)
@@ -28,7 +28,6 @@
import org.ourproject.kune.platf.client.actions.Shortcut;
import org.ourproject.kune.platf.client.app.Application;
import org.ourproject.kune.platf.client.dto.InitDataDTO;
-import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.platf.client.dto.UserInfoDTO;
import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
import org.ourproject.kune.platf.client.shortcuts.GlobalShortcutRegister;
@@ -191,12 +190,14 @@
// FIXME: Avatar provider
final AvatarProvider avatarProvider = new AvatarProvider() {
public String getAvatarURL(final XmppURI userURI) {
- if (userURI.getHost().equals(chatOptions.domain)) {
- return downloadUtils.get().getLogoImageUrl(new StateToken(userURI.getNode()));
- } else {
- return "";
- // return "images/person-def.gif";
- }
+ // if (userURI.getHost().equals(chatOptions.domain)) {
+ // FIXME
+ // return downloadUtils.get().getLogoImageUrl(new
+ // StateToken(userURI.getNode()));
+ // } else {
+ // return "";
+ // }
+ return "images/person-def.gif";
}
};
final String initialWindowTitle = Window.getTitle();
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/kimg.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/kimg.css 2009-12-26 06:18:15 UTC (rev 1145)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/kimg.css 2010-03-30 00:17:04 UTC (rev 1146)
@@ -1,3 +1,4 @@
+ at external k-icon-info,k-icon-language,k-icon-kuneIcon16,k-icon-bug,k-icon-prefs,k-icon-groupHome,k-icon-addGreen,k-icon-maximize,k-icon-minimize;
@sprite div .k-icon-info {
gwt-image: "info";
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/RTEImgResources.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/RTEImgResources.java 2009-12-26 06:18:15 UTC (rev 1145)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/RTEImgResources.java 2010-03-30 00:17:04 UTC (rev 1146)
@@ -2,7 +2,6 @@
import com.google.gwt.resources.client.ClientBundle;
import com.google.gwt.resources.client.ImageResource;
-import com.google.gwt.resources.client.CssResource.Strict;
// @PMD:REVIEWED:TooManyMethods: by vjrj on 27/05/09 0:06
public interface RTEImgResources extends ClientBundle {
@@ -29,7 +28,6 @@
ImageResource copy();
@Source("rteimg.css")
- @Strict
RTEImgCssResource css();
@Source("cut.png")
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/rteimg.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/rteimg.css 2009-12-26 06:18:15 UTC (rev 1145)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/rteimg.css 2010-03-30 00:17:04 UTC (rev 1146)
@@ -1,3 +1,4 @@
+ at external k-icon-underline,k-icon-superscript,k-icon-subscript,k-icon-film,k-icon-strikeout,k-icon-removeFormat,k-icon-link,k-icon-linkbreak,k-icon-italic,k-icon-incrementindent,k-icon-images,k-icon-hfixedline,k-icon-fontheight,k-icon-fontcolor,k-icon-edithtml,k-icon-defaultnumbering,k-icon-defaultbullet,k-icon-decrementindent,k-icon-charfontname,k-icon-centerpara,k-icon-bold,k-icon-backcolor,k-icon-alignright,k-icon-alignleft,k-icon-specialchars,k-icon-copy,k-icon-cut,k-icon-insertspreadsheet,k-icon-insertsymbol,k-icon-inserttable,k-icon-paste,k-icon-redo,k-icon-save,k-icon-selectall,k-icon-undo;
@sprite div .k-icon-underline {
gwt-image: "underline";
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPanel.java 2009-12-26 06:18:15 UTC (rev 1145)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPanel.java 2010-03-30 00:17:04 UTC (rev 1146)
@@ -103,6 +103,8 @@
});
waveWidget.loadWave(waveId);
setWidgetAsContent(waveWidget, false);
+ waveWidget.setToolbarVisible(true);
+ waveWidget.setEditMode(false);
}
public void setWidgetAsContent(final Widget widget, final boolean setDefMargins) {
Deleted: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/ContentAddSeleniumTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/ContentAddSeleniumTest.java 2009-12-26 06:18:15 UTC (rev 1145)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/ContentAddSeleniumTest.java 2010-03-30 00:17:04 UTC (rev 1146)
@@ -1,18 +0,0 @@
-package org.ourproject.kune.platf.integration.selenium;
-
-import org.junit.Test;
-import org.ourproject.kune.platf.client.dto.StateToken;
-import org.ourproject.kune.workspace.client.entityheader.EntityTextLogo;
-
-public class ContentAddSeleniumTest extends KuneSeleniumTestHelper {
- @Test
- public void wikiEditByAny() throws Exception {
- String shortname = "g" + genPrefix();
- String longName = "testing" + genPrefix();
- newGroupRegistrationDefLicense(shortname, longName, "some description", "tag1 tag2");
- waitForTextInside(gid(EntityTextLogo.LOGO_NAME), longName);
- open(new StateToken(shortname, ""));
- signOut();
- // TODO: need to add more ids
- }
-}
Copied: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/ContentAddSeleniumTest.java.txt (from rev 1140, trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/ContentAddSeleniumTest.java)
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/ContentAddSeleniumTest.java.txt (rev 0)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/ContentAddSeleniumTest.java.txt 2010-03-30 00:17:04 UTC (rev 1146)
@@ -0,0 +1,18 @@
+package org.ourproject.kune.platf.integration.selenium;
+
+import org.junit.Test;
+import org.ourproject.kune.platf.client.dto.StateToken;
+import org.ourproject.kune.workspace.client.entityheader.EntityTextLogo;
+
+public class ContentAddSeleniumTest extends KuneSeleniumTestHelper {
+ @Test
+ public void wikiEditByAny() throws Exception {
+ String shortname = "g" + genPrefix();
+ String longName = "testing" + genPrefix();
+ newGroupRegistrationDefLicense(shortname, longName, "some description", "tag1 tag2");
+ waitForTextInside(gid(EntityTextLogo.LOGO_NAME), longName);
+ open(new StateToken(shortname, ""));
+ signOut();
+ // TODO: need to add more ids
+ }
+}
Deleted: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/EntityLogoSeleniumTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/EntityLogoSeleniumTest.java 2009-12-26 06:18:15 UTC (rev 1145)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/EntityLogoSeleniumTest.java 2010-03-30 00:17:04 UTC (rev 1146)
@@ -1,31 +0,0 @@
-package org.ourproject.kune.platf.integration.selenium;
-
-import java.io.File;
-import java.io.IOException;
-
-import org.junit.Ignore;
-import org.ourproject.kune.platf.client.ui.download.FileConstants;
-import org.ourproject.kune.workspace.client.options.GroupOptionsPresenter;
-import org.ourproject.kune.workspace.client.options.logo.GroupOptionsLogoPanel;
-
-public class EntityLogoSeleniumTest extends KuneSeleniumTestHelper {
-
- @Ignore
- public void testEntityLogoUpload() throws Exception {
- openDefPage();
- signIn();
- setLogo("kune-logo-400px.png");
- setLogo("kune-logo-without-text.png");
- }
-
- private void setLogo(final String filename) throws Exception, IOException {
- click(gid(GroupOptionsPresenter.GROUP_OPTIONS_ICON));
- // waitForTextInside(EntityOptionsLogoPanel.PANEL_ID,
- // PlatfMessages.ENT_OPTIONS_GROUP_TITLE);
- click(GroupOptionsLogoPanel.BUTTON_ID);
- final File dir = new File(".");
- type(FileConstants.GROUP_LOGO_FIELD, dir.getCanonicalPath() + File.separator + "img" + File.separator
- + filename);
- click(GroupOptionsLogoPanel.BUTTON_ID);
- }
-}
Copied: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/EntityLogoSeleniumTest.java.txt (from rev 1140, trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/EntityLogoSeleniumTest.java)
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/EntityLogoSeleniumTest.java.txt (rev 0)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/EntityLogoSeleniumTest.java.txt 2010-03-30 00:17:04 UTC (rev 1146)
@@ -0,0 +1,31 @@
+package org.ourproject.kune.platf.integration.selenium;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.junit.Ignore;
+import org.ourproject.kune.platf.client.ui.download.FileConstants;
+import org.ourproject.kune.workspace.client.options.GroupOptionsPresenter;
+import org.ourproject.kune.workspace.client.options.logo.GroupOptionsLogoPanel;
+
+public class EntityLogoSeleniumTest extends KuneSeleniumTestHelper {
+
+ @Ignore
+ public void testEntityLogoUpload() throws Exception {
+ openDefPage();
+ signIn();
+ setLogo("kune-logo-400px.png");
+ setLogo("kune-logo-without-text.png");
+ }
+
+ private void setLogo(final String filename) throws Exception, IOException {
+ click(gid(GroupOptionsPresenter.GROUP_OPTIONS_ICON));
+ // waitForTextInside(EntityOptionsLogoPanel.PANEL_ID,
+ // PlatfMessages.ENT_OPTIONS_GROUP_TITLE);
+ click(GroupOptionsLogoPanel.BUTTON_ID);
+ final File dir = new File(".");
+ type(FileConstants.GROUP_LOGO_FIELD, dir.getCanonicalPath() + File.separator + "img" + File.separator
+ + filename);
+ click(GroupOptionsLogoPanel.BUTTON_ID);
+ }
+}
Deleted: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/KuneSeleniumTestHelper.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/KuneSeleniumTestHelper.java 2009-12-26 06:18:15 UTC (rev 1145)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/KuneSeleniumTestHelper.java 2010-03-30 00:17:04 UTC (rev 1146)
@@ -1,197 +0,0 @@
-package org.ourproject.kune.platf.integration.selenium;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Date;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.ourproject.kune.platf.client.dto.GroupType;
-import org.ourproject.kune.platf.client.dto.StateToken;
-import org.ourproject.kune.platf.server.ServerException;
-import org.ourproject.kune.workspace.client.WorkspaceMessages;
-import org.ourproject.kune.workspace.client.newgroup.NewGroupPanel;
-import org.ourproject.kune.workspace.client.signin.RegisterForm;
-import org.ourproject.kune.workspace.client.signin.RegisterPanel;
-import org.ourproject.kune.workspace.client.signin.SignInForm;
-import org.ourproject.kune.workspace.client.signin.SignInPanel;
-import org.ourproject.kune.workspace.client.site.SiteToken;
-import org.ourproject.kune.workspace.client.sitebar.sitesign.SiteSignInLinkPanel;
-import org.ourproject.kune.workspace.client.sitebar.sitesign.SiteSignOutLinkPanel;
-import org.ourproject.kune.workspace.client.sitebar.siteusermenu.SiteUserOptionsPanel;
-import org.ourproject.kune.workspace.client.title.EntityTitlePanel;
-
-import com.thoughtworks.selenium.SeleniumException;
-
-public class KuneSeleniumTestHelper extends SeleniumTestHelper {
-
- protected static final String KUNE_BASE_URL = "/ws/?locale=en#";
-
- private static File dirCaptures;
-
- @BeforeClass
- public static void beforeKuneClass() {
- dirCaptures = new File("img/captures/");
- if (!dirCaptures.exists()) {
- dirCaptures.mkdir();
- }
- }
-
- private boolean mustCapture;
-
- @After
- public void after() throws IOException {
- if (mustCapture) {
- selenium.captureEntirePageScreenshot(File.createTempFile("kune", "capture.png", dirCaptures).getAbsolutePath());
- }
- }
-
- @Before
- public void before() {
- mustCapture = true;
- try {
- selenium.deleteAllVisibleCookies();
- selenium.refresh();
- selenium.windowMaximize();
- } catch (final UnsupportedOperationException e) {
- throw new ServerException(
- "Seems that selenium server is not running; run before: 'mvn selenium:start-server' ");
- }
- }
-
- public void setMustCapture(final boolean mustCapture) {
- this.mustCapture = mustCapture;
- }
-
- protected void fillNewGroup1stPage(final String shortname, final String longName, final String description,
- final String tags, final GroupType groupType) throws Exception {
- type(NewGroupPanel.SHORTNAME_FIELD, shortname);
- type(NewGroupPanel.LONGNAME_FIELD, longName);
- type(NewGroupPanel.PUBLICDESC_FIELD, description);
- type(NewGroupPanel.TAGS_FIELD, tags);
- switch (groupType) {
- case COMMUNITY:
- click(NewGroupPanel.COMM_GROUP_TYPE_ID);
- break;
- case ORGANIZATION:
- click(NewGroupPanel.ORG_GROUP_TYPE_ID);
- break;
- case PROJECT:
- click(NewGroupPanel.PROJ_GROUP_TYPE_ID);
- break;
- default:
- fail("Invalid group type");
- break;
- }
- }
-
- protected long genPrefix() {
- final long prefix = new Date().getTime();
- return prefix;
- }
-
- protected void ifLoggedSigOut() {
- if (selenium.getText(gid(SiteSignOutLinkPanel.SITE_SIGN_OUT)).indexOf("admin") > 0) {
- signOut();
- }
- }
-
- protected void newGroupRegistrationDefLicense(final String shortname, final String longName,
- final String description, final String tags) throws Exception {
- final GroupType organization = GroupType.ORGANIZATION;
- signInAndNewGroup();
- fillNewGroup1stPage(shortname, longName, description, tags, organization);
- click(NewGroupPanel.REGISTER_BUTTON);
- }
-
- protected void open(final SiteToken token) {
- open(KUNE_BASE_URL + token.toString());
- }
-
- protected void open(final StateToken token) {
- open(KUNE_BASE_URL + token.toString());
- }
-
- @Override
- protected void open(final String url) {
- try {
- selenium.setTimeout("0");
- super.open(url);
- selenium.setTimeout("30");
- } catch (final SeleniumException e) {
- // TODO Auto-generated method stub
- }
- }
-
- protected void openDefPage() throws Exception {
- open(KUNE_BASE_URL + "#site");
- waitForTextInside(gid(EntityTitlePanel.ENTITY_TITLE_RIGHT_TITLE), "Welcome to kune");
- }
-
- protected void register(final String shortName, final String longName, final String passwd, final String passwdDup,
- final String email, final String country, final String language, final String tz, final boolean wantHomepage) {
- click(gid(SiteSignInLinkPanel.SITE_SIGN_IN));
- click(gid(SignInPanel.CREATE_ONE));
- type(RegisterForm.NICK_FIELD, shortName);
- type(RegisterForm.LONGNAME_FIELD, longName);
- type(RegisterForm.PASSWORD_FIELD, passwd);
- type(RegisterForm.PASSWORD_FIELD_DUP, passwdDup);
- type(RegisterForm.EMAIL_FIELD, email);
- type(RegisterForm.LANG_FIELD, language);
- type(RegisterForm.COUNTRY_FIELD, country);
- type(RegisterForm.TIMEZONE_FIELD, tz);
- // div[6]/div[1]/div/img
- click("//div[6]/div[1]/div/img");
- click("//div[text()='" + language + "']");
- click("//div[7]/div[1]/div/img");
- click("//div[text()='" + country + "']");
- click("//div[8]/div[1]/div/img");
- click("//div[text()='" + tz + "']");
- // "xpath=//div\[contains(@style,'visible')\]/div\[@class='x-combo-list-inner']/div[text()='"ItemTextValue"'\]";
- type("//div[@id='k-regp-p']/div/div/div/div/div/div/div/div/form/div[6]/div/div/input[2]", language);
- type("//div[@id='k-regp-p']/div/div/div/div/div/div/div/div/form/div[7]/div/div/input[2]", country);
- type("//div[@id='k-regp-p']/div/div/div/div/div/div/div/div/form/div[8]/div/div/input[2]", tz);
-
- if (wantHomepage) {
- click(RegisterForm.WANNAPERSONALHOMEPAGE_ID);
- } else {
- click(RegisterForm.NOPERSONALHOMEPAGE_ID);
- }
- click(RegisterPanel.REGISTER_BUTTON_ID);
- }
-
- protected String registerValidUser(final boolean wantHomepage) {
- final String shortName = "u" + genPrefix();
- register(shortName, "some name " + genPrefix(), "somepasswd", "somepasswd", genPrefix() + "@example.com",
- "Andorra", "English", "MET", wantHomepage);
- return shortName;
- }
-
- protected void signIn() {
- signIn("admin", "easyeasy");
- }
-
- protected void signIn(final String nick, final String passwd) {
- click(gid(SiteSignInLinkPanel.SITE_SIGN_IN));
- type(SignInForm.NICKOREMAIL_FIELD, nick);
- type(SignInForm.PASSWORD_FIELD, passwd);
- click(SignInPanel.SIGN_IN_BUTTON_ID);
- }
-
- protected void signInAndNewGroup() throws Exception {
- openDefPage();
- signIn();
- verifyLoggedUserShorName("admin");
- open(SiteToken.newgroup);
- waitForTextInside(NewGroupPanel.NEWGROUP_WIZARD, WorkspaceMessages.REGISTER_A_NEW_GROUP_TITLE);
- }
-
- protected void signOut() {
- click("gwt-debug-k-ssolp-lb");
- }
-
- protected void verifyLoggedUserShorName(final String userShortName) throws Exception {
- waitForTextInside(gid(SiteUserOptionsPanel.LOGGED_USER_MENU), userShortName);
- }
-}
Copied: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/KuneSeleniumTestHelper.java.txt (from rev 1140, trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/KuneSeleniumTestHelper.java)
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/KuneSeleniumTestHelper.java.txt (rev 0)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/KuneSeleniumTestHelper.java.txt 2010-03-30 00:17:04 UTC (rev 1146)
@@ -0,0 +1,197 @@
+package org.ourproject.kune.platf.integration.selenium;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Date;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.ourproject.kune.platf.client.dto.GroupType;
+import org.ourproject.kune.platf.client.dto.StateToken;
+import org.ourproject.kune.platf.server.ServerException;
+import org.ourproject.kune.workspace.client.WorkspaceMessages;
+import org.ourproject.kune.workspace.client.newgroup.NewGroupPanel;
+import org.ourproject.kune.workspace.client.signin.RegisterForm;
+import org.ourproject.kune.workspace.client.signin.RegisterPanel;
+import org.ourproject.kune.workspace.client.signin.SignInForm;
+import org.ourproject.kune.workspace.client.signin.SignInPanel;
+import org.ourproject.kune.workspace.client.site.SiteToken;
+import org.ourproject.kune.workspace.client.sitebar.sitesign.SiteSignInLinkPanel;
+import org.ourproject.kune.workspace.client.sitebar.sitesign.SiteSignOutLinkPanel;
+import org.ourproject.kune.workspace.client.sitebar.siteusermenu.SiteUserOptionsPanel;
+import org.ourproject.kune.workspace.client.title.EntityTitlePanel;
+
+import com.thoughtworks.selenium.SeleniumException;
+
+public class KuneSeleniumTestHelper extends SeleniumTestHelper {
+
+ protected static final String KUNE_BASE_URL = "/ws/?locale=en#";
+
+ private static File dirCaptures;
+
+ @BeforeClass
+ public static void beforeKuneClass() {
+ dirCaptures = new File("img/captures/");
+ if (!dirCaptures.exists()) {
+ dirCaptures.mkdir();
+ }
+ }
+
+ private boolean mustCapture;
+
+ @After
+ public void after() throws IOException {
+ if (mustCapture) {
+ selenium.captureEntirePageScreenshot(File.createTempFile("kune", "capture.png", dirCaptures).getAbsolutePath());
+ }
+ }
+
+ @Before
+ public void before() {
+ mustCapture = true;
+ try {
+ selenium.deleteAllVisibleCookies();
+ selenium.refresh();
+ selenium.windowMaximize();
+ } catch (final UnsupportedOperationException e) {
+ throw new ServerException(
+ "Seems that selenium server is not running; run before: 'mvn selenium:start-server' ");
+ }
+ }
+
+ public void setMustCapture(final boolean mustCapture) {
+ this.mustCapture = mustCapture;
+ }
+
+ protected void fillNewGroup1stPage(final String shortname, final String longName, final String description,
+ final String tags, final GroupType groupType) throws Exception {
+ type(NewGroupPanel.SHORTNAME_FIELD, shortname);
+ type(NewGroupPanel.LONGNAME_FIELD, longName);
+ type(NewGroupPanel.PUBLICDESC_FIELD, description);
+ type(NewGroupPanel.TAGS_FIELD, tags);
+ switch (groupType) {
+ case COMMUNITY:
+ click(NewGroupPanel.COMM_GROUP_TYPE_ID);
+ break;
+ case ORGANIZATION:
+ click(NewGroupPanel.ORG_GROUP_TYPE_ID);
+ break;
+ case PROJECT:
+ click(NewGroupPanel.PROJ_GROUP_TYPE_ID);
+ break;
+ default:
+ fail("Invalid group type");
+ break;
+ }
+ }
+
+ protected long genPrefix() {
+ final long prefix = new Date().getTime();
+ return prefix;
+ }
+
+ protected void ifLoggedSigOut() {
+ if (selenium.getText(gid(SiteSignOutLinkPanel.SITE_SIGN_OUT)).indexOf("admin") > 0) {
+ signOut();
+ }
+ }
+
+ protected void newGroupRegistrationDefLicense(final String shortname, final String longName,
+ final String description, final String tags) throws Exception {
+ final GroupType organization = GroupType.ORGANIZATION;
+ signInAndNewGroup();
+ fillNewGroup1stPage(shortname, longName, description, tags, organization);
+ click(NewGroupPanel.REGISTER_BUTTON);
+ }
+
+ protected void open(final SiteToken token) {
+ open(KUNE_BASE_URL + token.toString());
+ }
+
+ protected void open(final StateToken token) {
+ open(KUNE_BASE_URL + token.toString());
+ }
+
+ @Override
+ protected void open(final String url) {
+ try {
+ selenium.setTimeout("0");
+ super.open(url);
+ selenium.setTimeout("30");
+ } catch (final SeleniumException e) {
+ // TODO Auto-generated method stub
+ }
+ }
+
+ protected void openDefPage() throws Exception {
+ open(KUNE_BASE_URL + "#site");
+ waitForTextInside(gid(EntityTitlePanel.ENTITY_TITLE_RIGHT_TITLE), "Welcome to kune");
+ }
+
+ protected void register(final String shortName, final String longName, final String passwd, final String passwdDup,
+ final String email, final String country, final String language, final String tz, final boolean wantHomepage) {
+ click(gid(SiteSignInLinkPanel.SITE_SIGN_IN));
+ click(gid(SignInPanel.CREATE_ONE));
+ type(RegisterForm.NICK_FIELD, shortName);
+ type(RegisterForm.LONGNAME_FIELD, longName);
+ type(RegisterForm.PASSWORD_FIELD, passwd);
+ type(RegisterForm.PASSWORD_FIELD_DUP, passwdDup);
+ type(RegisterForm.EMAIL_FIELD, email);
+ type(RegisterForm.LANG_FIELD, language);
+ type(RegisterForm.COUNTRY_FIELD, country);
+ type(RegisterForm.TIMEZONE_FIELD, tz);
+ // div[6]/div[1]/div/img
+ click("//div[6]/div[1]/div/img");
+ click("//div[text()='" + language + "']");
+ click("//div[7]/div[1]/div/img");
+ click("//div[text()='" + country + "']");
+ click("//div[8]/div[1]/div/img");
+ click("//div[text()='" + tz + "']");
+ // "xpath=//div\[contains(@style,'visible')\]/div\[@class='x-combo-list-inner']/div[text()='"ItemTextValue"'\]";
+ type("//div[@id='k-regp-p']/div/div/div/div/div/div/div/div/form/div[6]/div/div/input[2]", language);
+ type("//div[@id='k-regp-p']/div/div/div/div/div/div/div/div/form/div[7]/div/div/input[2]", country);
+ type("//div[@id='k-regp-p']/div/div/div/div/div/div/div/div/form/div[8]/div/div/input[2]", tz);
+
+ if (wantHomepage) {
+ click(RegisterForm.WANNAPERSONALHOMEPAGE_ID);
+ } else {
+ click(RegisterForm.NOPERSONALHOMEPAGE_ID);
+ }
+ click(RegisterPanel.REGISTER_BUTTON_ID);
+ }
+
+ protected String registerValidUser(final boolean wantHomepage) {
+ final String shortName = "u" + genPrefix();
+ register(shortName, "some name " + genPrefix(), "somepasswd", "somepasswd", genPrefix() + "@example.com",
+ "Andorra", "English", "MET", wantHomepage);
+ return shortName;
+ }
+
+ protected void signIn() {
+ signIn("admin", "easyeasy");
+ }
+
+ protected void signIn(final String nick, final String passwd) {
+ click(gid(SiteSignInLinkPanel.SITE_SIGN_IN));
+ type(SignInForm.NICKOREMAIL_FIELD, nick);
+ type(SignInForm.PASSWORD_FIELD, passwd);
+ click(SignInPanel.SIGN_IN_BUTTON_ID);
+ }
+
+ protected void signInAndNewGroup() throws Exception {
+ openDefPage();
+ signIn();
+ verifyLoggedUserShorName("admin");
+ open(SiteToken.newgroup);
+ waitForTextInside(NewGroupPanel.NEWGROUP_WIZARD, WorkspaceMessages.REGISTER_A_NEW_GROUP_TITLE);
+ }
+
+ protected void signOut() {
+ click("gwt-debug-k-ssolp-lb");
+ }
+
+ protected void verifyLoggedUserShorName(final String userShortName) throws Exception {
+ waitForTextInside(gid(SiteUserOptionsPanel.LOGGED_USER_MENU), userShortName);
+ }
+}
Deleted: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/NewGroupSeleniumTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/NewGroupSeleniumTest.java 2009-12-26 06:18:15 UTC (rev 1145)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/NewGroupSeleniumTest.java 2010-03-30 00:17:04 UTC (rev 1146)
@@ -1,51 +0,0 @@
-package org.ourproject.kune.platf.integration.selenium;
-
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
-import org.junit.Test;
-import org.ourproject.kune.platf.client.dto.GroupType;
-import org.ourproject.kune.workspace.client.WorkspaceMessages;
-import org.ourproject.kune.workspace.client.entityheader.EntityTextLogo;
-import org.ourproject.kune.workspace.client.newgroup.NewGroupPanel;
-import org.ourproject.kune.workspace.client.site.SiteToken;
-
-public class NewGroupSeleniumTest extends KuneSeleniumTestHelper {
-
- @Test
- public void newGroupBasic() throws Exception {
- assertFalse(selenium.isTextPresent(NewGroupPanel.NEWGROUP_WIZARD));
- signInAndNewGroup();
- click(NewGroupPanel.CANCEL_BUTTON);
- assertFalse(selenium.isTextPresent(NewGroupPanel.NEWGROUP_WIZARD));
- open(SiteToken.newgroup);
- waitForTextInside(NewGroupPanel.NEWGROUP_WIZARD, WorkspaceMessages.REGISTER_A_NEW_GROUP_TITLE);
- }
-
- @Test
- public void newGroupNotLogged() throws Exception {
- openDefPage();
- assertFalse(selenium.isTextPresent(NewGroupPanel.NEWGROUP_WIZARD));
- assertFalse(selenium.isTextPresent(WorkspaceMessages.REGISTER_TO_CREATE_A_GROUP));
- open(SiteToken.newgroup);
- wait(1000);
- assertTrue(selenium.isTextPresent(WorkspaceMessages.REGISTER_TO_CREATE_A_GROUP));
- }
-
- @Test
- public void newGroupWithExistingNicknameFails() throws Exception {
- signInAndNewGroup();
- fillNewGroup1stPage("admin", "some long name" + genPrefix(), "some public description", "tag1 tag2 tag3",
- GroupType.ORGANIZATION);
- click(NewGroupPanel.REGISTER_BUTTON);
- waitForTextInside(gid(NewGroupPanel.ERROR_MSG_BAR), WorkspaceMessages.NAME_IN_ALREADY_IN_USE);
- }
-
- @Test
- public void newGroupWithNonOccidentalChars() throws Exception {
- String longName = "漢語 中文 华语 汉语" + genPrefix();
- newGroupRegistrationDefLicense("g" + genPrefix(), longName,
- "吗 台湾 六种辅音韵尾 中国政府要求在中国出售的软件必须使用编码 过 国标 名词的复数形式只在代词及多音节", "漢語 中文 华语 汉语");
- waitForTextInside(gid(EntityTextLogo.LOGO_NAME), longName);
- }
-}
Copied: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/NewGroupSeleniumTest.java.txt (from rev 1140, trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/NewGroupSeleniumTest.java)
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/NewGroupSeleniumTest.java.txt (rev 0)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/NewGroupSeleniumTest.java.txt 2010-03-30 00:17:04 UTC (rev 1146)
@@ -0,0 +1,51 @@
+package org.ourproject.kune.platf.integration.selenium;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Test;
+import org.ourproject.kune.platf.client.dto.GroupType;
+import org.ourproject.kune.workspace.client.WorkspaceMessages;
+import org.ourproject.kune.workspace.client.entityheader.EntityTextLogo;
+import org.ourproject.kune.workspace.client.newgroup.NewGroupPanel;
+import org.ourproject.kune.workspace.client.site.SiteToken;
+
+public class NewGroupSeleniumTest extends KuneSeleniumTestHelper {
+
+ @Test
+ public void newGroupBasic() throws Exception {
+ assertFalse(selenium.isTextPresent(NewGroupPanel.NEWGROUP_WIZARD));
+ signInAndNewGroup();
+ click(NewGroupPanel.CANCEL_BUTTON);
+ assertFalse(selenium.isTextPresent(NewGroupPanel.NEWGROUP_WIZARD));
+ open(SiteToken.newgroup);
+ waitForTextInside(NewGroupPanel.NEWGROUP_WIZARD, WorkspaceMessages.REGISTER_A_NEW_GROUP_TITLE);
+ }
+
+ @Test
+ public void newGroupNotLogged() throws Exception {
+ openDefPage();
+ assertFalse(selenium.isTextPresent(NewGroupPanel.NEWGROUP_WIZARD));
+ assertFalse(selenium.isTextPresent(WorkspaceMessages.REGISTER_TO_CREATE_A_GROUP));
+ open(SiteToken.newgroup);
+ wait(1000);
+ assertTrue(selenium.isTextPresent(WorkspaceMessages.REGISTER_TO_CREATE_A_GROUP));
+ }
+
+ @Test
+ public void newGroupWithExistingNicknameFails() throws Exception {
+ signInAndNewGroup();
+ fillNewGroup1stPage("admin", "some long name" + genPrefix(), "some public description", "tag1 tag2 tag3",
+ GroupType.ORGANIZATION);
+ click(NewGroupPanel.REGISTER_BUTTON);
+ waitForTextInside(gid(NewGroupPanel.ERROR_MSG_BAR), WorkspaceMessages.NAME_IN_ALREADY_IN_USE);
+ }
+
+ @Test
+ public void newGroupWithNonOccidentalChars() throws Exception {
+ String longName = "漢語 中文 华语 汉语" + genPrefix();
+ newGroupRegistrationDefLicense("g" + genPrefix(), longName,
+ "吗 台湾 六种辅音韵尾 中国政府要求在中国出售的软件必须使用编码 过 国标 名词的复数形式只在代词及多音节", "漢語 中文 华语 汉语");
+ waitForTextInside(gid(EntityTextLogo.LOGO_NAME), longName);
+ }
+}
Deleted: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SeleniumTestHelper.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SeleniumTestHelper.java 2009-12-26 06:18:15 UTC (rev 1145)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SeleniumTestHelper.java 2010-03-30 00:17:04 UTC (rev 1146)
@@ -1,141 +0,0 @@
-package org.ourproject.kune.platf.integration.selenium;
-
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.ourproject.kune.platf.server.ServerException;
-
-import com.google.gwt.user.client.ui.UIObject;
-import com.thoughtworks.selenium.DefaultSelenium;
-
-public class SeleniumTestHelper {
-
- protected static DefaultSelenium selenium;
- private static boolean mustStopFinally = true;
-
- @AfterClass
- public static void afterClass() {
- if (mustStopFinally) {
- selenium.stop();
- }
- }
-
- /**
- *
- * If you get and null in ./content/recorder.js line 74 running test, this
- * happens when you compile gwt with PRETTY instead of OBF. See:
- *
- * <pre>
- * http://groups.google.com/group/Google-Web-Toolkit/browse_thread/thread/5d6a9c448a82b916/af62e5877237b107?lnk=raot
- * </pre>
- *
- * <pre>
- * http://code.google.com/p/google-web-toolkit/issues/detail?id=2861
- * </pre>
- *
- * @param url
- * @return
- * @throws Exception
- */
- @BeforeClass
- public static void beforeClass() {
- // ff3 hangs: http://jira.openqa.org/browse/SRC-225
- // as a workarount use ff2:
- //
- // return new DefaultSelenium("localhost", 4441,
- // "*firefox /usr/lib/firefox-3.0.3/firefox", url);
-
- // this is a problem... platform dependence ...
- selenium = new DefaultSelenium("localhost", 4441, "*chrome /usr/lib/firefox/firefox-2-bin",
- "http://localhost:8080/");
- selenium.start();
- }
-
- public static void setMustStopFinally(final boolean mustStopFinally) {
- SeleniumTestHelper.mustStopFinally = mustStopFinally;
- }
-
- protected void click(final String id) {
- selenium.click(id);
- }
-
- protected void clickOnPushButton(final String id) {
- selenium.mouseOver(id);
- selenium.mouseDown(id);
- selenium.mouseUp(id);
- }
-
- protected void fail(final String message) throws Exception {
- throw new ServerException(message);
- }
-
- /**
- * Returns the debug id with the gwt DEBUG_ID_PREFIX
- *
- * @param id
- * @return
- */
- protected String gid(final String id) {
- return UIObject.DEBUG_ID_PREFIX + id;
- }
-
- protected String linkId(final String link) {
- return "link=" + link;
- }
-
- protected void open(final String url) {
- try {
- selenium.open(url);
- } catch (final UnsupportedOperationException e) {
- throw new ServerException(
- "Seems that selenium server is not running; run before: 'mvn selenium:start-server' ", e);
- }
- }
-
- protected void setSpeed(final int milliseconds) {
- selenium.setSpeed("" + milliseconds);
- }
-
- protected void type(final String id, final String text) {
- selenium.type(id, text);
- }
-
- protected void wait(final int milliseconds) {
- try {
- Thread.sleep(milliseconds);
- } catch (final InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
-
- protected void waitForTextInside(final String id, final String text) throws Exception {
- for (int second = 0;; second++) {
- if (second >= 60) {
- fail("timeout");
- }
- try {
- final String selText = selenium.getText(id);
- if (selText.indexOf(text) >= 0) {
- break;
- }
- } catch (final Exception e) {
- }
- Thread.sleep(1000);
- }
- }
-
- protected void waitForTextRegExp(final String id, final String text) throws Exception {
- for (int second = 0;; second++) {
- if (second >= 60) {
- fail("timeout");
- }
- try {
- if (selenium.getText(id).matches(text)) {
- break;
- }
- } catch (final Exception e) {
- }
- Thread.sleep(1000);
- }
- }
-}
Copied: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SeleniumTestHelper.java.txt (from rev 1140, trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SeleniumTestHelper.java)
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SeleniumTestHelper.java.txt (rev 0)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SeleniumTestHelper.java.txt 2010-03-30 00:17:04 UTC (rev 1146)
@@ -0,0 +1,141 @@
+package org.ourproject.kune.platf.integration.selenium;
+
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.ourproject.kune.platf.server.ServerException;
+
+import com.google.gwt.user.client.ui.UIObject;
+import com.thoughtworks.selenium.DefaultSelenium;
+
+public class SeleniumTestHelper {
+
+ protected static DefaultSelenium selenium;
+ private static boolean mustStopFinally = true;
+
+ @AfterClass
+ public static void afterClass() {
+ if (mustStopFinally) {
+ selenium.stop();
+ }
+ }
+
+ /**
+ *
+ * If you get and null in ./content/recorder.js line 74 running test, this
+ * happens when you compile gwt with PRETTY instead of OBF. See:
+ *
+ * <pre>
+ * http://groups.google.com/group/Google-Web-Toolkit/browse_thread/thread/5d6a9c448a82b916/af62e5877237b107?lnk=raot
+ * </pre>
+ *
+ * <pre>
+ * http://code.google.com/p/google-web-toolkit/issues/detail?id=2861
+ * </pre>
+ *
+ * @param url
+ * @return
+ * @throws Exception
+ */
+ @BeforeClass
+ public static void beforeClass() {
+ // ff3 hangs: http://jira.openqa.org/browse/SRC-225
+ // as a workarount use ff2:
+ //
+ // return new DefaultSelenium("localhost", 4441,
+ // "*firefox /usr/lib/firefox-3.0.3/firefox", url);
+
+ // this is a problem... platform dependence ...
+ selenium = new DefaultSelenium("localhost", 4441, "*chrome /usr/lib/firefox/firefox-2-bin",
+ "http://localhost:8080/");
+ selenium.start();
+ }
+
+ public static void setMustStopFinally(final boolean mustStopFinally) {
+ SeleniumTestHelper.mustStopFinally = mustStopFinally;
+ }
+
+ protected void click(final String id) {
+ selenium.click(id);
+ }
+
+ protected void clickOnPushButton(final String id) {
+ selenium.mouseOver(id);
+ selenium.mouseDown(id);
+ selenium.mouseUp(id);
+ }
+
+ protected void fail(final String message) throws Exception {
+ throw new ServerException(message);
+ }
+
+ /**
+ * Returns the debug id with the gwt DEBUG_ID_PREFIX
+ *
+ * @param id
+ * @return
+ */
+ protected String gid(final String id) {
+ return UIObject.DEBUG_ID_PREFIX + id;
+ }
+
+ protected String linkId(final String link) {
+ return "link=" + link;
+ }
+
+ protected void open(final String url) {
+ try {
+ selenium.open(url);
+ } catch (final UnsupportedOperationException e) {
+ throw new ServerException(
+ "Seems that selenium server is not running; run before: 'mvn selenium:start-server' ", e);
+ }
+ }
+
+ protected void setSpeed(final int milliseconds) {
+ selenium.setSpeed("" + milliseconds);
+ }
+
+ protected void type(final String id, final String text) {
+ selenium.type(id, text);
+ }
+
+ protected void wait(final int milliseconds) {
+ try {
+ Thread.sleep(milliseconds);
+ } catch (final InterruptedException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
+ protected void waitForTextInside(final String id, final String text) throws Exception {
+ for (int second = 0;; second++) {
+ if (second >= 60) {
+ fail("timeout");
+ }
+ try {
+ final String selText = selenium.getText(id);
+ if (selText.indexOf(text) >= 0) {
+ break;
+ }
+ } catch (final Exception e) {
+ }
+ Thread.sleep(1000);
+ }
+ }
+
+ protected void waitForTextRegExp(final String id, final String text) throws Exception {
+ for (int second = 0;; second++) {
+ if (second >= 60) {
+ fail("timeout");
+ }
+ try {
+ if (selenium.getText(id).matches(text)) {
+ break;
+ }
+ } catch (final Exception e) {
+ }
+ Thread.sleep(1000);
+ }
+ }
+}
Deleted: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java 2009-12-26 06:18:15 UTC (rev 1145)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java 2010-03-30 00:17:04 UTC (rev 1146)
@@ -1,141 +0,0 @@
-package org.ourproject.kune.platf.integration.selenium;
-
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import org.junit.Test;
-import org.ourproject.kune.platf.client.PlatfMessages;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.workspace.client.nohomepage.NoHomePagePanel;
-import org.ourproject.kune.workspace.client.signin.RegisterPanel;
-import org.ourproject.kune.workspace.client.signin.SignInForm;
-import org.ourproject.kune.workspace.client.signin.SignInPanel;
-import org.ourproject.kune.workspace.client.site.SiteToken;
-import org.ourproject.kune.workspace.client.sitebar.sitesign.SiteSignInLinkPanel;
-import org.ourproject.kune.workspace.client.sitebar.siteusermenu.SiteUserOptionsPanel;
-import org.ourproject.kune.workspace.client.title.EntityTitlePanel;
-
-public class SignInSeleniumTest extends KuneSeleniumTestHelper {
-
- @Test
- public void registerAdminNameMustFail() throws Exception {
- openDefPage();
- register("u" + genPrefix(), "Site Administrator", "somepasswd", "somepasswd", "some" + genPrefix()
- + "@example.com", "Andorra", "Afrikaans", "MIT", true);
- waitForTextInside(gid(RegisterPanel.ERRMSG), PlatfMessages.NAME_IN_USE);
- click(RegisterPanel.CANCEL_BUTTON_ID);
- }
-
- @Test
- public void registerAdminNicknameMustFail() throws Exception {
- openDefPage();
- register("admin", "some name" + genPrefix(), "somepasswd", "somepasswd", "some" + genPrefix() + "@example.com",
- "Andorra", "Afrikaans", "MIT", true);
- waitForTextInside(gid(RegisterPanel.ERRMSG), PlatfMessages.NAME_IN_USE);
- click(RegisterPanel.CANCEL_BUTTON_ID);
- }
-
- @Test
- public void registerSomeUser() throws Exception {
- openDefPage();
- String user = registerValidUser(true);
- verifyLoggedUserShorName(user);
- }
-
- @Test
- public void registerSomeUserWithouHomepage() throws Exception {
- openDefPage();
- registerValidUser(false);
- selenium.isTextPresent("Welcome");
- click(RegisterPanel.WELCOME_OK_BUTTON);
- clickOnPushButton(gid(SiteUserOptionsPanel.LOGGED_USER_MENU));
- click(linkId(PlatfMessages.YOUR_HOMEPAGE));
- waitForTextInside(gid(NoHomePagePanel.NO_HOME_PAGE_LABEL), PlatfMessages.USER_DOESN_T_HAVE_A_HOMEPAGE);
- }
-
- @Test
- public void registerUserWithNonOccidentalChars() throws Exception {
- openDefPage();
- String user = "u" + genPrefix();
- register(user, "漢語 中文 华语 汉语" + genPrefix() + genPrefix(), "somepasswd", "somepasswd", genPrefix()
- + "@example.com", "Andorra", "English", "MET", true);
- verifyLoggedUserShorName(user);
- }
-
- @Test
- public void testFocusOnNickAndSignInWithIntro() throws Exception {
- openDefPage();
- click(gid(SiteSignInLinkPanel.SITE_SIGN_IN));
- selenium.keyPress(SignInForm.NICKOREMAIL_FIELD, "\\97");
- selenium.keyPress(SignInForm.NICKOREMAIL_FIELD, "\\100");
- selenium.keyPress(SignInForm.NICKOREMAIL_FIELD, "\\109");
- selenium.keyPress(SignInForm.NICKOREMAIL_FIELD, "\\105");
- selenium.keyPress(SignInForm.NICKOREMAIL_FIELD, "\\110");
- type(SignInForm.PASSWORD_FIELD, "easyeasy");
- selenium.keyPress(SignInForm.PASSWORD_FIELD, "\\13");
- verifyLoggedUserShorName("admin");
- }
-
- @Test
- public void testRegisterToken() throws Exception {
- open(SiteToken.register);
- assertFalse(selenium.isTextPresent(PlatfMessages.REGISTER_TITLE));
- waitForTextInside(gid(EntityTitlePanel.ENTITY_TITLE_RIGHT_TITLE), "Welcome to kune");
- assertTrue(selenium.isTextPresent(PlatfMessages.REGISTER_TITLE));
- }
-
- @Test
- public void testSignInAndOut() throws Exception {
- openDefPage();
- signIn();
- verifyLoggedUserShorName("admin");
- signOut();
- }
-
- @Test
- public void testSignInAndOutRemovingCookie() throws Exception {
- openDefPage();
- signIn();
- assertNotNull(selenium.getCookieByName(Session.USERHASH));
- verifyLoggedUserShorName("admin");
- signOut();
- }
-
- @Test
- public void testSignInFailed() throws Exception {
- openDefPage();
- signIn("something", "wrong");
- waitForTextInside(gid(SignInPanel.ERROR_MSG), PlatfMessages.INCORRECT_NICKNAME_EMAIL_OR_PASSWORD);
- signOut();
- }
-
- @Test
- public void testSignInOutTwice() throws Exception {
- openDefPage();
- signIn();
- verifyLoggedUserShorName("admin");
- signOut();
- signIn();
- verifyLoggedUserShorName("admin");
- signOut();
- }
-
- @Test
- public void testSignInRemember() throws Exception {
- openDefPage();
- signIn();
- verifyLoggedUserShorName("admin");
- selenium.refresh();
- verifyLoggedUserShorName("admin");
- signOut();
- }
-
- @Test
- public void testSignInToken() throws Exception {
- open(SiteToken.signin);
- assertFalse(selenium.isTextPresent(PlatfMessages.SIGN_IN_TITLE));
- waitForTextInside(gid(EntityTitlePanel.ENTITY_TITLE_RIGHT_TITLE), "Welcome to kune");
- assertTrue(selenium.isTextPresent(PlatfMessages.SIGN_IN_TITLE));
- }
-}
Copied: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java.txt (from rev 1140, trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java)
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java.txt (rev 0)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java.txt 2010-03-30 00:17:04 UTC (rev 1146)
@@ -0,0 +1,141 @@
+package org.ourproject.kune.platf.integration.selenium;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Test;
+import org.ourproject.kune.platf.client.PlatfMessages;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.workspace.client.nohomepage.NoHomePagePanel;
+import org.ourproject.kune.workspace.client.signin.RegisterPanel;
+import org.ourproject.kune.workspace.client.signin.SignInForm;
+import org.ourproject.kune.workspace.client.signin.SignInPanel;
+import org.ourproject.kune.workspace.client.site.SiteToken;
+import org.ourproject.kune.workspace.client.sitebar.sitesign.SiteSignInLinkPanel;
+import org.ourproject.kune.workspace.client.sitebar.siteusermenu.SiteUserOptionsPanel;
+import org.ourproject.kune.workspace.client.title.EntityTitlePanel;
+
+public class SignInSeleniumTest extends KuneSeleniumTestHelper {
+
+ @Test
+ public void registerAdminNameMustFail() throws Exception {
+ openDefPage();
+ register("u" + genPrefix(), "Site Administrator", "somepasswd", "somepasswd", "some" + genPrefix()
+ + "@example.com", "Andorra", "Afrikaans", "MIT", true);
+ waitForTextInside(gid(RegisterPanel.ERRMSG), PlatfMessages.NAME_IN_USE);
+ click(RegisterPanel.CANCEL_BUTTON_ID);
+ }
+
+ @Test
+ public void registerAdminNicknameMustFail() throws Exception {
+ openDefPage();
+ register("admin", "some name" + genPrefix(), "somepasswd", "somepasswd", "some" + genPrefix() + "@example.com",
+ "Andorra", "Afrikaans", "MIT", true);
+ waitForTextInside(gid(RegisterPanel.ERRMSG), PlatfMessages.NAME_IN_USE);
+ click(RegisterPanel.CANCEL_BUTTON_ID);
+ }
+
+ @Test
+ public void registerSomeUser() throws Exception {
+ openDefPage();
+ String user = registerValidUser(true);
+ verifyLoggedUserShorName(user);
+ }
+
+ @Test
+ public void registerSomeUserWithouHomepage() throws Exception {
+ openDefPage();
+ registerValidUser(false);
+ selenium.isTextPresent("Welcome");
+ click(RegisterPanel.WELCOME_OK_BUTTON);
+ clickOnPushButton(gid(SiteUserOptionsPanel.LOGGED_USER_MENU));
+ click(linkId(PlatfMessages.YOUR_HOMEPAGE));
+ waitForTextInside(gid(NoHomePagePanel.NO_HOME_PAGE_LABEL), PlatfMessages.USER_DOESN_T_HAVE_A_HOMEPAGE);
+ }
+
+ @Test
+ public void registerUserWithNonOccidentalChars() throws Exception {
+ openDefPage();
+ String user = "u" + genPrefix();
+ register(user, "漢語 中文 华语 汉语" + genPrefix() + genPrefix(), "somepasswd", "somepasswd", genPrefix()
+ + "@example.com", "Andorra", "English", "MET", true);
+ verifyLoggedUserShorName(user);
+ }
+
+ @Test
+ public void testFocusOnNickAndSignInWithIntro() throws Exception {
+ openDefPage();
+ click(gid(SiteSignInLinkPanel.SITE_SIGN_IN));
+ selenium.keyPress(SignInForm.NICKOREMAIL_FIELD, "\\97");
+ selenium.keyPress(SignInForm.NICKOREMAIL_FIELD, "\\100");
+ selenium.keyPress(SignInForm.NICKOREMAIL_FIELD, "\\109");
+ selenium.keyPress(SignInForm.NICKOREMAIL_FIELD, "\\105");
+ selenium.keyPress(SignInForm.NICKOREMAIL_FIELD, "\\110");
+ type(SignInForm.PASSWORD_FIELD, "easyeasy");
+ selenium.keyPress(SignInForm.PASSWORD_FIELD, "\\13");
+ verifyLoggedUserShorName("admin");
+ }
+
+ @Test
+ public void testRegisterToken() throws Exception {
+ open(SiteToken.register);
+ assertFalse(selenium.isTextPresent(PlatfMessages.REGISTER_TITLE));
+ waitForTextInside(gid(EntityTitlePanel.ENTITY_TITLE_RIGHT_TITLE), "Welcome to kune");
+ assertTrue(selenium.isTextPresent(PlatfMessages.REGISTER_TITLE));
+ }
+
+ @Test
+ public void testSignInAndOut() throws Exception {
+ openDefPage();
+ signIn();
+ verifyLoggedUserShorName("admin");
+ signOut();
+ }
+
+ @Test
+ public void testSignInAndOutRemovingCookie() throws Exception {
+ openDefPage();
+ signIn();
+ assertNotNull(selenium.getCookieByName(Session.USERHASH));
+ verifyLoggedUserShorName("admin");
+ signOut();
+ }
+
+ @Test
+ public void testSignInFailed() throws Exception {
+ openDefPage();
+ signIn("something", "wrong");
+ waitForTextInside(gid(SignInPanel.ERROR_MSG), PlatfMessages.INCORRECT_NICKNAME_EMAIL_OR_PASSWORD);
+ signOut();
+ }
+
+ @Test
+ public void testSignInOutTwice() throws Exception {
+ openDefPage();
+ signIn();
+ verifyLoggedUserShorName("admin");
+ signOut();
+ signIn();
+ verifyLoggedUserShorName("admin");
+ signOut();
+ }
+
+ @Test
+ public void testSignInRemember() throws Exception {
+ openDefPage();
+ signIn();
+ verifyLoggedUserShorName("admin");
+ selenium.refresh();
+ verifyLoggedUserShorName("admin");
+ signOut();
+ }
+
+ @Test
+ public void testSignInToken() throws Exception {
+ open(SiteToken.signin);
+ assertFalse(selenium.isTextPresent(PlatfMessages.SIGN_IN_TITLE));
+ waitForTextInside(gid(EntityTitlePanel.ENTITY_TITLE_RIGHT_TITLE), "Welcome to kune");
+ assertTrue(selenium.isTextPresent(PlatfMessages.SIGN_IN_TITLE));
+ }
+}
Added: trunk/war/WEB-INF/localhost.cer
===================================================================
--- trunk/war/WEB-INF/localhost.cer (rev 0)
+++ trunk/war/WEB-INF/localhost.cer 2010-03-30 00:17:04 UTC (rev 1146)
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC7zCCAligAwIBAgIJAP5zJqYmGz7vMA0GCSqGSIb3DQEBBQUAMFkxCzAJBgNV
+BAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX
+aWRnaXRzIFB0eSBMdGQxEjAQBgNVBAMTCWxvY2FsaG9zdDAeFw0wOTA4MDUxMDI2
+MDBaFw0xMDA4MDUxMDI2MDBaMFkxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpTb21l
+LVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxEjAQBgNV
+BAMTCWxvY2FsaG9zdDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0mHausYX
+KTlrz/fdhYA/63L8PZFwjtqCEdUh+5BFSqFlE34uhwmoIFzZat5z80tAQGjyp1EL
+Ai2BegqCOHWaeOKNnwSm93a31fMy6N4rygUgs2rCjVtz6yqMCBd7c9KENifMTWY0
+agIz6C4Pk+YLnkx7rrDGyW5/jaIKNrjFioUCAwEAAaOBvjCBuzAdBgNVHQ4EFgQU
+Aob17ojAhUn47dxkKOogj+NWtxUwgYsGA1UdIwSBgzCBgIAUAob17ojAhUn47dxk
+KOogj+NWtxWhXaRbMFkxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRl
+MSEwHwYDVQQKExhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxEjAQBgNVBAMTCWxv
+Y2FsaG9zdIIJAP5zJqYmGz7vMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD
+gYEANGKOujn47HIf0rYEq0Z8mnzfUet+7AtzGjueLymKSRI9PGSdgtJd/C7lQEsD
+bqzIb4gu8NDE5wJjcEOikrQ6jawK/ws6s/H+BCKtrefCmbaNsv3hmC4uaQfmCkiE
+U3gN9MsqSncdzBX/5kXZn7gzS0j/KVukDOykjLAAsbp4Ad4=
+-----END CERTIFICATE-----
Added: trunk/war/WEB-INF/localhost.key
===================================================================
--- trunk/war/WEB-INF/localhost.key (rev 0)
+++ trunk/war/WEB-INF/localhost.key 2010-03-30 00:17:04 UTC (rev 1146)
@@ -0,0 +1,16 @@
+-----BEGIN PRIVATE KEY-----
+MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBANJh2rrGFyk5a8/3
+3YWAP+ty/D2RcI7aghHVIfuQRUqhZRN+LocJqCBc2Wrec/NLQEBo8qdRCwItgXoK
+gjh1mnjijZ8Epvd2t9XzMujeK8oFILNqwo1bc+sqjAgXe3PShDYnzE1mNGoCM+gu
+D5PmC55Me66wxsluf42iCja4xYqFAgMBAAECgYEAuJ/JXQlEABh1JbAGxgaTkaN5
++unslmDpro6U4Pht5p2WXzHn0PfHhIcXAfMwXD0YqK2w7OZxO7sFmj0opDWIlZ9t
+H5ruSlV1YOEmuReeGqWJRNKEVnr6BXUFtEmTRZxF2XrxGEci71afH7EziC+uNYKm
+53XPKvg4/qeHE+Ig+w0CQQD2GdwkHIRKvn2KyNrI0ag4uuX7tWDk2avkRpwnjRBk
+E+Z7GYiXpwGZrJktJ2lbsc3r4pU6yEPmtdLah9DJrW93AkEA2tgxWtdwyFlosBj/
+h/Eq+VCVCLR+OtbDaD8IZ0cijHtnllL99XRivnOrLUeTQfWxaUM7Qoky3tk6p5Pw
+Oxbs4wJBAIM/93Aq5UMXpMzHoidH6XeX9d/wM+TZUhtErTNKwFsfYeR1EawPnYLf
+0jGKu13zzebnyL64373DatixZmCo5rECQFRNgAW8hGfJeXiMyLL3hlRwZFjsHsxP
+uwrHbVdLodV4HFleMxKA+SDgsgpJTkLUgLlJ+uQQshYCnIO9i4dXt30CQBsJJ+pD
+9DjZXSRvklLZBqpFnFMIi+jW12GQrpNb7HO16pZNdy+Ljc0b/YZL+6nAYjbwg30c
+4X+49VVcDxiJMws=
+-----END PRIVATE KEY-----
More information about the kune-commits
mailing list