Author: scottbw
Date: Mon Mar 11 12:23:06 2013
New Revision: 1455113
URL: http://svn.apache.org/r1455113
Log:
Implemented localization of widget instances in the connector framework; call
user.setLocale("my-locale") to set preferred user locale before calling
getOrCreateInstance. See WOOKIE-405
Added:
wookie/trunk/connector/java/src-test/org/apache/wookie/tests/connector/framework/impl/localetest.wgt
(with props)
Modified:
wookie/trunk/connector/java/src-test/org/apache/wookie/tests/connector/framework/UserTest.java
wookie/trunk/connector/java/src-test/org/apache/wookie/tests/connector/framework/impl/WookieConnectorService.java
wookie/trunk/connector/java/src/org/apache/wookie/connector/framework/AbstractWookieConnectorService.java
wookie/trunk/connector/java/src/org/apache/wookie/connector/framework/User.java
Modified:
wookie/trunk/connector/java/src-test/org/apache/wookie/tests/connector/framework/UserTest.java
URL:
http://svn.apache.org/viewvc/wookie/trunk/connector/java/src-test/org/apache/wookie/tests/connector/framework/UserTest.java?rev=1455113&r1=1455112&r2=1455113&view=diff
==============================================================================
---
wookie/trunk/connector/java/src-test/org/apache/wookie/tests/connector/framework/UserTest.java
(original)
+++
wookie/trunk/connector/java/src-test/org/apache/wookie/tests/connector/framework/UserTest.java
Mon Mar 11 12:23:06 2013
@@ -71,4 +71,13 @@ public class UserTest {
assertEquals("Thumbnail URL not correctly set", "",
user.getThumbnailUrl());
}
+ @Test
+ public void testLocale(){
+ user.setLocale("en");
+ assertEquals("Locale not currectly set", "en", user.getLocale());
+
+ User localizedUser = new User("bob", "bob", null, null, "fr");
+ assertEquals("Locale not currectly set", "fr",
localizedUser.getLocale());
+ }
+
}
Modified:
wookie/trunk/connector/java/src-test/org/apache/wookie/tests/connector/framework/impl/WookieConnectorService.java
URL:
http://svn.apache.org/viewvc/wookie/trunk/connector/java/src-test/org/apache/wookie/tests/connector/framework/impl/WookieConnectorService.java?rev=1455113&r1=1455112&r2=1455113&view=diff
==============================================================================
---
wookie/trunk/connector/java/src-test/org/apache/wookie/tests/connector/framework/impl/WookieConnectorService.java
(original)
+++
wookie/trunk/connector/java/src-test/org/apache/wookie/tests/connector/framework/impl/WookieConnectorService.java
Mon Mar 11 12:23:06 2013
@@ -87,6 +87,36 @@ public class WookieConnectorService {
}
+ @Test
+ public void upload() throws WookieConnectorException{
+ File widgetFile = new File (
"connector/java/src-test/org/apache/wookie/tests/connector/framework/impl/localetest.wgt"
);
+ String adminUsername = "java";
+ String adminPassword = "java";
+ Widget uploadedWidget = service.postWidget(widgetFile, adminUsername,
adminPassword);
+ assertNotNull ( "Widget value from postWidget is null",
uploadedWidget);
+ String identifier = uploadedWidget.getIdentifier();
+ assertEquals("http://www.getwookie.org/widgets/localetest",
identifier);
+ assertEquals("255", uploadedWidget.getWidth());
+ assertEquals("383", uploadedWidget.getHeight());
+ }
+
+ @Test
+ public void localization() throws IOException, WookieConnectorException{
+ WidgetInstance instance;
+
+ service.getCurrentUser().setLocale("fr");
+ instance =
service.getOrCreateInstance("http://www.getwookie.org/widgets/localetest");
+ assertEquals("Widget instance has wrong locale", "tester les
paramètres régionaux", instance.getTitle());
+ assertTrue("Widget instance has incorrect locale URL",
instance.getUrl().contains("locales/fr"));
+
+ assertEquals("255", instance.getWidth());
+ assertEquals("383", instance.getHeight());
+
+ service.getCurrentUser().setLocale("en");
+ instance =
service.getOrCreateInstance("http://www.getwookie.org/widgets/localetest");
+ assertEquals("Widget instance has wrong locale", "locale test",
instance.getTitle());
+ assertTrue("Widget instance has incorrect locale URL",
instance.getUrl().contains("locales/en"));
+ }
@Test
@@ -121,6 +151,14 @@ public class WookieConnectorService {
}
@Test
+ public void getOrCreateLocalizedInstance() throws WookieConnectorException,
IOException {
+ service.getCurrentUser().setLocale("fr");
+ HashMap<String, Widget> widgets = service.getAvailableWidgets();
+ WidgetInstance instance =
service.getOrCreateInstance((Widget)widgets.values().toArray()[0]);
+ assertNotNull("Retrieved widget instance is null", instance);
+ }
+
+ @Test
public void addParticipant() throws WookieConnectorException, IOException {
HashMap<String, Widget> widgets = service.getAvailableWidgets();
WidgetInstance instance =
service.getOrCreateInstance((Widget)widgets.values().toArray()[0]);
Added:
wookie/trunk/connector/java/src-test/org/apache/wookie/tests/connector/framework/impl/localetest.wgt
URL:
http://svn.apache.org/viewvc/wookie/trunk/connector/java/src-test/org/apache/wookie/tests/connector/framework/impl/localetest.wgt?rev=1455113&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
wookie/trunk/connector/java/src-test/org/apache/wookie/tests/connector/framework/impl/localetest.wgt
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Modified:
wookie/trunk/connector/java/src/org/apache/wookie/connector/framework/AbstractWookieConnectorService.java
URL:
http://svn.apache.org/viewvc/wookie/trunk/connector/java/src/org/apache/wookie/connector/framework/AbstractWookieConnectorService.java?rev=1455113&r1=1455112&r2=1455113&view=diff
==============================================================================
---
wookie/trunk/connector/java/src/org/apache/wookie/connector/framework/AbstractWookieConnectorService.java
(original)
+++
wookie/trunk/connector/java/src/org/apache/wookie/connector/framework/AbstractWookieConnectorService.java
Mon Mar 11 12:23:06 2013
@@ -257,6 +257,14 @@ public abstract class AbstractWookieConn
postdata.append(URLEncoder.encode(getCurrentUser().getLoginName(),"UTF-8"));
postdata.append("&widgetid=");
postdata.append(URLEncoder.encode(guid, "UTF-8"));
+
+ //
+ // If the user has a preferred locale, add as a parameter to the request
+ //
+ if (getCurrentUser().getLocale()!= null){
+ postdata.append("&locale=");
+ postdata.append(URLEncoder.encode(getCurrentUser().getLocale(),
"UTF-8"));
+ }
logger.debug("Making Wookie REST query using: " + postdata);
Modified:
wookie/trunk/connector/java/src/org/apache/wookie/connector/framework/User.java
URL:
http://svn.apache.org/viewvc/wookie/trunk/connector/java/src/org/apache/wookie/connector/framework/User.java?rev=1455113&r1=1455112&r2=1455113&view=diff
==============================================================================
---
wookie/trunk/connector/java/src/org/apache/wookie/connector/framework/User.java
(original)
+++
wookie/trunk/connector/java/src/org/apache/wookie/connector/framework/User.java
Mon Mar 11 12:23:06 2013
@@ -23,6 +23,11 @@ public class User {
private String thumbnailUrl = "";
private String role = null;
+ /*
+ * The preferred locale of the user, as a BCP-47 language tag
+ */
+ private String locale = null;
+
/**
* Create a new user.
*
@@ -61,6 +66,22 @@ public class User {
setThumbnailUrl(thumbnailUrl);
setRole(role);
}
+
+ /**
+ * Create a new user.
+ *
+ * @param loginName
+ * @param screenName
+ * @param thumbnailUrl
+ * @param isHost
+ */
+ public User(String loginName, String screenName, String thumbnailUrl, String
role, String locale) {
+ setLoginName(loginName);
+ setScreenName(screenName);
+ setThumbnailUrl(thumbnailUrl);
+ setRole(role);
+ setLocale(locale);
+ }
/**
* Get the login name for this user.
@@ -133,4 +154,20 @@ public class User {
this.role = role;
}
+ /**
+ * @return the locale
+ */
+ public String getLocale() {
+ return locale;
+ }
+
+ /**
+ * @param locale the locale to set
+ */
+ public void setLocale(String locale) {
+ this.locale = locale;
+ }
+
+
+
}