Revision: 3514
          http://vexi.svn.sourceforge.net/vexi/?rev=3514&view=rev
Author:   clrg
Date:     2009-05-27 14:34:53 +0000 (Wed, 27 May 2009)

Log Message:
-----------
Fix password textfields + tests

Modified Paths:
--------------
    trunk/widgets/org.vexi.widgets/src/org/vexi/lib/widget/textfield.t

Added Paths:
-----------
    trunk/widgets/org.vexi.widgets/src_vunit/test/widget/textfield.t

Modified: trunk/widgets/org.vexi.widgets/src/org/vexi/lib/widget/textfield.t
===================================================================
--- trunk/widgets/org.vexi.widgets/src/org/vexi/lib/widget/textfield.t  
2009-05-26 22:35:54 UTC (rev 3513)
+++ trunk/widgets/org.vexi.widgets/src/org/vexi/lib/widget/textfield.t  
2009-05-27 14:34:53 UTC (rev 3514)
@@ -17,6 +17,7 @@
         thisbox.value = "";
         thisbox.th_shadowtext;
         thisbox.th_shadowwrap;
+        thisbox.v_updatetext = true;
         
         KeyPressed ++= static.keypressEvent;
         password   ++= static.passwordWrite;
@@ -79,6 +80,7 @@
                 do_del = false;
             }
             val = trapee.value;
+            trapee.v_updatetext = false;
             // insert single character
             if (v.length == 1) {
                 cascade = '*';
@@ -104,6 +106,7 @@
                 // must be done after as not to inadvertently modify cPos
                 edit.KeyPressed = v;
             }
+            trapee.v_updatetext = true;
         // normal textfield input
         } else {
             cascade = v;
@@ -137,7 +140,9 @@
             var l = v.length;
             for (var i=0; l>i; i++) str += '*';
             cascade = str;
+            f.v_updatetext = false;
             f.value = v;
+            f.v_updatetext = true;
         } else cascade = v;
     }
     
@@ -147,9 +152,8 @@
     /** set the text if value is written to */
     static.valueWrite = function(v) {
         if (trapee.password) {
-            var val = trapee.value;
             cascade = v;
-            if (val != trapee.value) trapee.text = v;
+            if (trapee.v_updatetext and val != trapee.value) trapee.text = v;
         } else { trapee.text = v; return; }
     }
     

Added: trunk/widgets/org.vexi.widgets/src_vunit/test/widget/textfield.t
===================================================================
--- trunk/widgets/org.vexi.widgets/src_vunit/test/widget/textfield.t            
                (rev 0)
+++ trunk/widgets/org.vexi.widgets/src_vunit/test/widget/textfield.t    
2009-05-27 14:34:53 UTC (rev 3514)
@@ -0,0 +1,52 @@
+<vexi xmlns:meta="vexi://meta" xmlns:ui="vexi://ui" xmlns="vexi.widget">
+    <meta:doc>
+        <author>Charles Goodwin</author>
+    </meta:doc>
+   
+    var vunit = vexi..vexi.test.vunit;
+    var assertEq = vunit..assertEq;
+    
+    /// Quick Suite
+    var suite = {};
+    suite.testQ1 = function() {
+        var focusmodel = { setFocus:function(t, f){return true;} };
+        var b = .textfield(vexi.box);
+        b.v_focusmodel = focusmodel;
+        b.password = true;
+        b.value = "test123";
+        assertEq("test123", b.value);
+        assertEq("*******", b.text);
+        b.focused = true;
+        b.KeyPressed = "a";
+        b.KeyPressed = "b";
+        b.KeyPressed = "c";
+        assertEq("abc", b.value);
+        b.KeyPressed = "left";
+        b.KeyPressed = "d";
+        assertEq("abdc", b.value);
+        b.KeyPressed = "back_space";
+        assertEq("abc", b.value);
+        b.KeyPressed = "delete";
+        assertEq("ab", b.value);
+        var b2 = .textfield(vexi.box);
+        b2.v_focusmodel = focusmodel;
+        b2.password = true;
+        b2.focused = true;
+        b2.KeyPressed = "p";
+        b2.KeyPressed = "a";
+        b2.KeyPressed = "s";
+        b2.KeyPressed = "s";
+        b2.KeyPressed = "w";
+        b2.KeyPressed = "o";
+        b2.KeyPressed = "r";
+        b2.KeyPressed = "d";
+        assertEq("password", b2.value);
+    };    
+    suite.name = "vexi.widget.textfield Tests";
+
+    static.test = suite;
+    
+    <surface>
+        static.test().testQ1();
+    </surface>
+</vexi>
\ No newline at end of file


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT 
is a gathering of tech-side developers & brand creativity professionals. Meet
the minds behind Google Creative Lab, Visual Complexity, Processing, & 
iPhoneDevCamp as they present alongside digital heavyweights like Barbarian 
Group, R/GA, & Big Spaceship. http://p.sf.net/sfu/creativitycat-com 
_______________________________________________
Vexi-svn mailing list
Vexi-svn@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/vexi-svn

Reply via email to