Bug 202922

Summary: rawinput.typeText() interval should be longer and/or configurable.
Product: [Fedora] Fedora Reporter: Yan Tian <tyan>
Component: dogtailAssignee: Zack Cerza <zcerza>
Status: CLOSED NEXTRELEASE QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: llim, rousseau
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2006-08-23 18:12:33 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Yan Tian 2006-08-17 08:26:36 UTC
Description of problem:
In RHEL4-U3 system, used the rawinput/typeText() in the script. Can't type one
character at a time, but whole string at a time. It seemed no difference with
text().  

Version-Release number of selected component (if applicable):
dogtail-0.5.1-1

How reproducible:
always

Steps to Reproduce:
1.run script test-input.py. Using text().
2.run script test-typeText.py. Using typeText().
3.diff -Nur test-input.py test-typeText.py > diff.txt
4.view diff.txtas below:
--- test-input.py       2006-08-15 16:29:31.000000000 +0800
+++ test-typeText.py    2006-08-15 16:29:39.000000000 +0800
@@ -1,5 +1,5 @@
 #!/usr/bin/env python
-# Test inputing to the screen by text() #3514
+# Test inputing to the screen character by character #3514

 import dogtail.tree
 import dogtail.utils
@@ -11,7 +11,7 @@
 dogtail.utils.run('gedit')
 gedit = dogtail.tree.root.application('gedit')

-gedit.child(roleName = 'text').text = string
+gedit.child(roleName = 'text').typeText(string)

 quitItem = gedit.menu("File").menuItem("Quit")
 quitItem.click()
  
Actual results:
1 and 2 running results were same.

Expected results:
1 script type whole string at a time.
2 script type one character at a time.

Additional info:

Comment 1 Zack Cerza 2006-08-18 18:06:12 UTC
tree.Node.typeText(string) currently just does:
    self.text += string
This is different in CVS and will be in the next release.

rawinput.typeText(string) does in fact type each character one by one, but does
so in a tight loop. There should probably be a configurable delay.

Comment 2 Zack Cerza 2006-08-23 18:12:33 UTC
The interval in CVS has been changed to be 75ms, which looks pretty realistic.