blob: 6c87f9b03ee10ec84d113bf1f684c98477f0b6c3 [file] [log] [blame]
<html>
<head>
<style type="text/css">
.sikuli-code {
font-size: 20px;
font-family: "Osaka-mono", Monospace;
line-height: 1.5em;
display:table-cell;
white-space: pre-wrap; /* css-3 */
white-space: -moz-pre-wrap !important; /* Mozilla, since 1999 */
white-space: -pre-wrap; /* Opera 4-6 */
white-space: -o-pre-wrap; /* Opera 7 */
word-wrap: break-word; /* Internet Explorer 5.5+ */
width: 99%; /* remove horizontal scroll-bar when viewing in IE7 */
}
.sikuli-code img {
vertical-align: middle;
margin: 2px;
border: 1px solid #ccc;
padding: 2px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
-moz-box-shadow: 1px 1px 1px gray;
-webkit-box-shadow: 1px 1px 2px gray;
}
.kw {
color: blue;
}
.skw {
color: rgb(63, 127, 127);
}
.str {
color: rgb(128, 0, 0);
}
.dig {
color: rgb(128, 64, 0);
}
.cmt {
color: rgb(200, 0, 200);
}
h2 {
display: inline;
font-weight: normal;
}
.info {
border-bottom: 1px solid #ddd;
padding-bottom: 5px;
margin-bottom: 20px;
display: none;
}
a {
color: #9D2900;
}
body {
font-family: "Trebuchet MS", Arial, Sans-Serif;
}
</style>
</head>
<body>
<div class="info">
<h2>konqueror.sikuli</h2> <a href="konqueror.zip">(Download this script)</a>
</div>
<pre class="sikuli-code">
<span class="cmt"># coding=utf-8
</span>setThrowException(True)
<span class="kw">class</span> Konqueror:
REMOTE = <span class="dig">0</span>
LOCAL = <span class="dig">1</span>
_tab = None
_dirs = {}
<span class="kw">def</span> __init__(self):
self._dirs = {self.LOCAL: [], self.REMOTE: []}
self._startKonqueror()
self._initWebdav()
<span class="skw">sleep</span>(<span class="dig">2</span>)
self._initLocal()
<span class="skw">sleep</span>(<span class="dig">2</span>)
<span class="kw">def</span> _startKonqueror(self):
openApp(<span class="str">"/home/dotxp/bin/start_konqueror.sh"</span>)
<span class="skw">sleep</span>(<span class="dig">1</span>)
<span class="skw">wait</span>(Pattern(<img src="1266401481278.png" />).similar(<span class="dig">0.80</span>).firstN(<span class="dig">1</span>))
<span class="kw">def</span> _initWebdav(self):
<span class="skw">type</span>(<span class="str">"l"</span>, KEY_CTRL)
paste(<span class="str">"webdav://webdav"</span>)
<span class="skw">type</span>(Key.ENTER)
self._tab = self.REMOTE
self._dirs[self.REMOTE].append(<span class="str">"/"</span>)
<span class="kw">def</span> _initLocal(self):
<span class="skw">type</span>(<span class="str">"t"</span>, KEY_CTRL)
<span class="skw">sleep</span>(<span class="dig">1</span>)
self._tab = self.LOCAL
<span class="skw">type</span>(<span class="str">"l"</span>, KEY_CTRL)
paste(<span class="str">"/home/dotxp/Desktop/Temp/put_test/down"</span>)
<span class="skw">type</span>(Key.ENTER)
self._dirs[self.LOCAL].append(<span class="str">"/"</span>)
self._dirs[self.LOCAL].append(<span class="str">"down"</span>)
<span class="kw">def</span> switchRemote(self):
<span class="kw">if</span> (self._tab == self.LOCAL):
<span class="skw">type</span>(<span class="str">","</span>, KEY_CTRL)
self._tab = self.REMOTE
<span class="skw">sleep</span>(<span class="dig">0.4</span>)
<span class="kw">def</span> switchLocal(self):
<span class="kw">if</span> (self._tab == self.REMOTE):
<span class="skw">type</span>(<span class="str">","</span>, KEY_CTRL)
self._tab = self.LOCAL
<span class="skw">sleep</span>(<span class="dig">0.4</span>)
<span class="kw">def</span> openLocal(self, dirImg, dirName):
self.switchLocal()
self._open(dirImg, dirName)
<span class="kw">def</span> _open(self, dirImg, dirName):
<span class="skw">doubleClick</span>(dirImg)
self._dirs[self._tab].append(dirName)
<span class="kw">def</span> openRemote(self, dirImg, dirName):
self.switchRemote()
self._open(dirImg, dirName)
<span class="kw">def</span> upRemote(self, dirName=None):
self.switchRemote()
<span class="skw">sleep</span>(<span class="dig">1</span>)
self.goUp(dirName)
<span class="kw">def</span> upLocal(self, dirName=None):
self.switchLocal()
<span class="skw">sleep</span>(<span class="dig">1</span>)
self.goUp(dirName)
<span class="kw">def</span> goUp(self, dirName):
<span class="kw">if</span> dirName == None:
<span class="skw">click</span>(Pattern(<img src="1266259183958.png" />).similar(<span class="dig">0.60</span>).firstN(<span class="dig">1</span>))
self._dirs[self._tab].pop()
<span class="kw">return</span>
<span class="kw">while</span> self._dirs[self._tab][-<span class="dig">1</span>] != dirName:
<span class="skw">click</span>(Pattern(<img src="1266259183958.png" />).similar(<span class="dig">0.60</span>).firstN(<span class="dig">1</span>))
self._dirs[self._tab].pop()
<span class="kw">def</span> copy(self):
<span class="skw">type</span>(<span class="str">"c"</span>, KEY_CTRL)
<span class="kw">def</span> paste(self):
<span class="skw">type</span>(<span class="str">"v"</span>, KEY_CTRL)
<span class="kw">def</span> rename(self, fileImg, newName, newFileImg):
<span class="skw">click</span>(fileImg)
<span class="skw">sleep</span>(<span class="dig">0.2</span>)
<span class="skw">type</span>(Key.F2)
<span class="skw">wait</span>(Pattern(<img src="1266428301207.png" />).similar(<span class="dig">0.50</span>).firstN(<span class="dig">1</span>))
<span class="skw">type</span>(<span class="str">"a"</span>, KEY_CTRL)
<span class="skw">sleep</span>(<span class="dig">0.2</span>)
paste(newName)
<span class="skw">sleep</span>(<span class="dig">0.1</span>)
<span class="skw">type</span>(Key.ENTER)
<span class="skw">wait</span>(newFileImg)
<span class="kw">def</span> createDir(self, dirName, dirImg):
<span class="skw">type</span>(Key.F10)
createDirDiag = <span class="skw">wait</span>(Pattern(<img src="1266404189832.png" />).similar(<span class="dig">0.80</span>).firstN(<span class="dig">1</span>))
<span class="kw">if</span> len(createDirDiag) == <span class="dig">0</span>:
<span class="kw">raise</span> SystemExit(<span class="str">"Could not find new dir dialog"</span>)
paste(dirName)
<span class="skw">type</span>(Key.ENTER)
<span class="skw">sleep</span>(<span class="dig">1</span>)
<span class="skw">find</span>(dirImg)
<span class="kw">class</span> KonquerorWebdavTest:
_client = None
<span class="kw">def</span> __init__(self, client):
self._client = client
<span class="kw">def</span> run(self):
self.testInitial()
self.testListCollection()
self.testDownloadSingle()
self.testListSubdir()
self.testDownloadMultiple()
self.testCreateNewdir()
self.testListNewdir()
self.testUploadSingle()
self.testCreateNewsubdir()
self.testListNewsubdir()
self.testUploadSingleOverwrite()
self.testDeleteNewdir()
self.testUploadNew()
self.testDownloadUploaded()
self.testRenameFiles()
self.testCopyFilesRemote()
self.testRenameCollection()
self.testCopyCollectionSame()
<span class="kw">pass</span>
<span class="kw">def</span> testInitial(self):
self._client.switchRemote()
<span class="skw">find</span>(Pattern(<img src="1266403774620.png" />).similar(<span class="dig">0.80</span>).firstN(<span class="dig">1</span>))
<span class="kw">def</span> testListCollection(self):
self._client.openRemote(Pattern(<img src="1266403317481.png" />).similar(<span class="dig">0.80</span>).firstN(<span class="dig">1</span>), <span class="str">"collection"</span>)
<span class="skw">find</span>(Pattern(<img src="1266403396957.png" />).similar(<span class="dig">0.80</span>).firstN(<span class="dig">1</span>))
<span class="kw">def</span> testDownloadSingle(self):
self._client.switchRemote()
<span class="skw">click</span>(Pattern(<img src="1266403844742.png" />).similar(<span class="dig">0.80</span>).firstN(<span class="dig">1</span>))
self._client.copy()
self._client.switchLocal()
<span class="skw">sleep</span>(<span class="dig">1</span>)
self._client.paste()
<span class="skw">sleep</span>(<span class="dig">1</span>)
<span class="skw">find</span>(Pattern(<img src="1266403586626.png" />).similar(<span class="dig">0.80</span>).firstN(<span class="dig">1</span>))
<span class="kw">def</span> testListSubdir(self):
self._client.openRemote(Pattern(<img src="1266403618714.png" />).similar(<span class="dig">0.80</span>).firstN(<span class="dig">1</span>), <span class="str">"subdir"</span>)
<span class="skw">find</span>(Pattern(<img src="1266424593041.png" />).similar(<span class="dig">0.80</span>).firstN(<span class="dig">1</span>))
<span class="kw">def</span> testDownloadMultiple(self):
self._client.switchRemote()
<span class="skw">click</span>(Pattern(<img src="1266403938988.png" />).similar(<span class="dig">0.80</span>).firstN(<span class="dig">1</span>))
<span class="skw">type</span>(Key.RIGHT, KEY_SHIFT)
self._client.copy()
<span class="skw">sleep</span>(<span class="dig">1</span>)
self._client.switchLocal()
<span class="skw">sleep</span>(<span class="dig">1</span>)
self._client.paste()
<span class="skw">sleep</span>(<span class="dig">1</span>)
<span class="skw">find</span>(Pattern(<img src="1266403982273.png" />).similar(<span class="dig">0.80</span>).firstN(<span class="dig">1</span>))
<span class="kw">def</span> testCreateNewdir(self):
self._client.switchRemote()
self._client.createDir(<span class="str">"newdir"</span>, Pattern(<img src="1266404324764.png" />).similar(<span class="dig">0.79</span>).firstN(<span class="dig">1</span>))
<span class="kw">def</span> testListNewdir(self):
self._client.openRemote(Pattern(<img src="1266404324764.png" />).similar(<span class="dig">0.79</span>).firstN(<span class="dig">1</span>), <span class="str">"newdir"</span>)
<span class="skw">find</span>(Pattern(<img src="1266404387459.png" />).similar(<span class="dig">0.80</span>).firstN(<span class="dig">1</span>))
<span class="kw">def</span> testUploadSingle(self):
self._client.switchLocal()
<span class="skw">click</span>(Pattern(<img src="1266405005919.png" />).similar(<span class="dig">0.80</span>).firstN(<span class="dig">1</span>))
self._client.copy()
self._client.switchRemote()
self._client.paste()
<span class="skw">find</span>(Pattern(<img src="1266404478750.png" />).similar(<span class="dig">0.80</span>).firstN(<span class="dig">1</span>))
<span class="kw">def</span> testCreateNewsubdir(self):
self._client.switchRemote()
self._client.createDir(<span class="str">"newsubdir"</span>, Pattern(<img src="1266404642076.png" />).similar(<span class="dig">0.80</span>).firstN(<span class="dig">1</span>))
<span class="kw">def</span> testListNewsubdir(self):
self._client.openRemote(Pattern(<img src="1266424853166.png" />).similar(<span class="dig">0.80</span>).firstN(<span class="dig">1</span>), <span class="str">"newsubdir"</span>)
<span class="skw">find</span>(Pattern(<img src="1266424893903.png" />).similar(<span class="dig">0.80</span>).firstN(<span class="dig">1</span>))
<span class="kw">def</span> testUploadSingleOverwrite(self):
self._client.switchLocal()
<span class="skw">click</span>(Pattern(<img src="1266405005919.png" />).similar(<span class="dig">0.80</span>).firstN(<span class="dig">1</span>))
self._client.copy()
self._client.switchRemote()
self._client.paste()
<span class="skw">find</span>(Pattern(<img src="1266404478750.png" />).similar(<span class="dig">0.80</span>).firstN(<span class="dig">1</span>))
self._client.switchLocal()
<span class="skw">click</span>(Pattern(<img src="1266405005919.png" />).similar(<span class="dig">0.80</span>).firstN(<span class="dig">1</span>))
self._client.copy()
self._client.switchRemote()
self._client.paste()
<span class="skw">wait</span>(Pattern(<img src="1266427667434.png" />).similar(<span class="dig">0.30</span>).firstN(<span class="dig">1</span>))
<span class="skw">click</span>(Pattern(<img src="1266425303012.png" />).similar(<span class="dig">0.70</span>).firstN(<span class="dig">1</span>))
<span class="skw">find</span>(Pattern(<img src="1266404478750.png" />).similar(<span class="dig">0.80</span>).firstN(<span class="dig">1</span>))
<span class="kw">def</span> testDeleteNewdir(self):
self._client.upRemote(<span class="str">"collection"</span>)
<span class="skw">click</span>(Pattern(<img src="1266425401724.png" />).similar(<span class="dig">0.80</span>).firstN(<span class="dig">1</span>))
<span class="skw">type</span>(Key.DELETE)
<span class="skw">wait</span>(Pattern(<img src="1266425429809.png" />).similar(<span class="dig">0.70</span>).firstN(<span class="dig">1</span>))
<span class="skw">click</span>(Pattern(<img src="1266425459006.png" />).similar(<span class="dig">0.70</span>).firstN(<span class="dig">1</span>))
<span class="skw">find</span>(Pattern(<img src="1266425612217.png" />).similar(<span class="dig">0.80</span>).firstN(<span class="dig">1</span>))
<span class="kw">def</span> testUploadNew(self):
self._client.upLocal(<span class="str">"/"</span>)
self._client.openLocal(Pattern(<img src="1266425647634.png" />).similar(<span class="dig">0.90</span>).firstN(<span class="dig">1</span>), <span class="str">"up"</span>)
<span class="skw">type</span>(<span class="str">"a"</span>, KEY_CTRL)
<span class="skw">sleep</span>(<span class="dig">0.5</span>)
self._client.copy()
self._client.switchRemote()
<span class="skw">sleep</span>(<span class="dig">1</span>)
self._client.paste()
<span class="skw">sleep</span>(<span class="dig">2</span>)
<span class="skw">find</span>(Pattern(<img src="1266425732567.png" />).similar(<span class="dig">0.80</span>).firstN(<span class="dig">1</span>))
<span class="kw">def</span> testDownloadUploaded(self):
self._client.switchRemote()
<span class="cmt"># delete first, to copy everything else
</span> <span class="skw">click</span>(Pattern(<img src="1266403844742.png" />).similar(<span class="dig">0.80</span>).firstN(<span class="dig">1</span>))
<span class="skw">type</span>(Key.DELETE)
<span class="skw">sleep</span>(<span class="dig">0.5</span>)
<span class="skw">type</span>(Key.ENTER)
<span class="skw">sleep</span>(<span class="dig">1</span>)
<span class="skw">type</span>(<span class="str">"a"</span>, KEY_CTRL)
<span class="skw">sleep</span>(<span class="dig">1</span>)
self._client.copy()
self._client.upLocal(<span class="str">"/"</span>)
self._client.openLocal(Pattern(<img src="1266425995532.png" />).similar(<span class="dig">0.80</span>).firstN(<span class="dig">1</span>), <span class="str">"down"</span>)
self._client.paste()
<span class="skw">find</span>(Pattern(<img src="1266426251752.png" />).similar(<span class="dig">0.80</span>).firstN(<span class="dig">1</span>))
<span class="kw">def</span> testRenameFiles(self):
self._client.switchRemote()
self._client.rename(Pattern(<img src="1266426292140.png" />).similar(<span class="dig">0.80</span>).firstN(<span class="dig">1</span>), <span class="str">u"put_test_renamed.xml"</span>, Pattern(<img src="1266426519794.png" />).similar(<span class="dig">0.80</span>).firstN(<span class="dig">1</span>))
<span class="skw">sleep</span>(<span class="dig">0.5</span>)
self._client.rename(Pattern(<img src="1266426596595.png" />).similar(<span class="dig">0.80</span>).firstN(<span class="dig">1</span>), <span class="str">u"put_test_utf8_\u00f6\u00e4\u00fc\u00df.txt"</span>, Pattern(<img src="1266426643952.png" />).similar(<span class="dig">0.80</span>).firstN(<span class="dig">1</span>))
<span class="skw">sleep</span>(<span class="dig">0.5</span>)
self._client.rename(Pattern(<img src="1266429314226.png" />).similar(<span class="dig">0.70</span>).firstN(<span class="dig">1</span>), <span class="str">u"put_non_utf8_test.txt"</span>, Pattern(<img src="1266426731983.png" />).similar(<span class="dig">0.80</span>).firstN(<span class="dig">1</span>))
<span class="kw">def</span> testCopyFilesRemote(self):
self._client.switchRemote()
<span class="skw">click</span>(Pattern(<img src="1266427115069.png" />).similar(<span class="dig">0.80</span>).firstN(<span class="dig">1</span>))
<span class="skw">type</span>(Key.RIGHT, KEY_SHIFT)
<span class="skw">sleep</span>(<span class="dig">1</span>)
<span class="skw">type</span>(Key.RIGHT, KEY_SHIFT)
<span class="skw">sleep</span>(<span class="dig">1</span>)
self._client.copy()
self._client.openRemote(Pattern(<img src="1266427167957.png" />).similar(<span class="dig">0.80</span>).firstN(<span class="dig">1</span>), <span class="str">"collection"</span>)
<span class="skw">sleep</span>(<span class="dig">1</span>)
self._client.paste()
<span class="skw">wait</span>(Pattern(<img src="1266429510001.png" />).similar(<span class="dig">0.70</span>).firstN(<span class="dig">1</span>))
<span class="kw">def</span> testRenameCollection(self):
self._client.upRemote()
self._client.rename(Pattern(<img src="1266427306959.png" />).similar(<span class="dig">0.80</span>).firstN(<span class="dig">1</span>), <span class="str">"renamed_collection"</span>, Pattern(<img src="1266427339100.png" />).similar(<span class="dig">0.80</span>).firstN(<span class="dig">1</span>))
<span class="kw">def</span> testCopyCollectionSame(self):
<span class="skw">click</span>(Pattern(<img src="1266427428035.png" />).similar(<span class="dig">0.80</span>).firstN(<span class="dig">1</span>))
self._client.copy()
<span class="skw">sleep</span>(<span class="dig">1</span>)
self._client.paste()
<span class="skw">wait</span>(Pattern(<img src="1266427467448.png" />).similar(<span class="dig">0.80</span>).firstN(<span class="dig">1</span>))
<span class="skw">type</span>(Key.ENTER)
konqueror = Konqueror()
test = KonquerorWebdavTest(konqueror)
test.run()
</pre>
</body>
</html>