You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@wookie.apache.org by sc...@apache.org on 2013/03/11 13:23:06 UTC

svn commit: r1455113 - in /wookie/trunk/connector/java: src-test/org/apache/wookie/tests/connector/framework/ src-test/org/apache/wookie/tests/connector/framework/impl/ src/org/apache/wookie/connector/framework/

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;
+  }
+  
+  
+
 }