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


Reply via email to