ZATS Download"

From Documentation
m (correct highlight (via JWB))
 
(One intermediate revision by one other user not shown)
Line 16: Line 16:
  
 
'''DownloadComposer.java'''
 
'''DownloadComposer.java'''
<source lang="java" start="10" high="12">
+
<source lang="java" start="10" highlight="13">
 
public class DownloadComposer extends GenericForwardComposer {
 
public class DownloadComposer extends GenericForwardComposer {
public void onClick$btn() throws IOException {
+
@Listen("onClick=#btn")
 +
public void download() throws IOException {
 
Filedownload.save("/hello.txt", "application/octet-stream");
 
Filedownload.save("/hello.txt", "application/octet-stream");
 
}
 
}
Line 24: Line 25:
 
</source>
 
</source>
  
Actually, the downloaded mechanism is a process with two steps. When you invoke <tt>save()</tt>, the <tt>Filedownload</tt> simply notifies ZK client engine of the downloaded URL. Then, the ZK client engine downloads such files according to the received URL.
+
Actually, the downloaded mechanism is a process with two steps. When you invoke <code>save()</code>, the <code>Filedownload</code> simply notifies ZK client engine of the downloaded URL. Then, the ZK client engine downloads such files according to the received URL.
  
 
'''Notes'''
 
'''Notes'''
Line 31: Line 32:
 
== Download files in a ZATS Mimic test case ==
 
== Download files in a ZATS Mimic test case ==
  
In order to simulate same behavior as ZK client engine doing, ZATS Mimic introduces the <tt>Resource</tt> interface. It represents a downloadable resource file at server. The typical steps for testing downloading are:
+
In order to simulate same behavior as ZK client engine doing, ZATS Mimic introduces the <code>Resource</code> interface. It represents a downloadable resource file at server. The typical steps for testing downloading are:
 
# perform some operations through operation agents
 
# perform some operations through operation agents
 
# check is there a downloadable resource through desktop agent
 
# check is there a downloadable resource through desktop agent
 
# fetch and verify the information or content of the resource
 
# fetch and verify the information or content of the resource
  
<source lang="java" start="10" high="14,15,16,17,18,19">
+
<source lang="java" start="10" highlight="14,15,16,17,18,19">
 
@Test
 
@Test
 
public void test() throws Exception {
 
public void test() throws Exception {
Line 49: Line 50:
 
}
 
}
 
</source>
 
</source>
* '''Line 14-16''': Because ZATS Mimic handles the response from ZK application automatically, we can get the current downloadable resource file from the <tt>DesktopAgent.getDownloadable()</tt>. The method might return <tt>null</tt> when getting the downloadable resource, it indicates that there is no downloadable resource after the previous operation.
+
* '''Line 14-16''': Because ZATS Mimic handles the response from ZK application automatically, we can get the current downloadable resource file from the <code>DesktopAgent.getDownloadable()</code>. The method might return <code>null</code> when getting the downloadable resource, it indicates that there is no downloadable resource after the previous operation.
* '''Line 17-19''': We can get more information from <tt>Resource</tt>, or fetch the content of resource file in binary through the input stream.
+
* '''Line 17-19''': We can get more information from <code>Resource</code>, or fetch the content of resource file in binary through the input stream.
  
 
{{ZATSEssentialsPageFooter}}
 
{{ZATSEssentialsPageFooter}}

Latest revision as of 02:59, 20 January 2022

WarningTriangle-32x32.png This page is under construction, so we cannot guarantee the accuracy of the content!

aowang



Since 1.1.0


We usually perform the file downloading through the Filedownload when some events occurred[1]. The following is a typical example about downloading a file:

download.zul

<zk>
	<div apply="DownloadComposer">
		<button id="btn" label="download" />
	</div>
</zk>

DownloadComposer.java

public class DownloadComposer extends GenericForwardComposer {
	@Listen("onClick=#btn")
	public void download() throws IOException {
		Filedownload.save("/hello.txt", "application/octet-stream");
	}
}

Actually, the downloaded mechanism is a process with two steps. When you invoke save(), the Filedownload simply notifies ZK client engine of the downloaded URL. Then, the ZK client engine downloads such files according to the received URL.

Notes

Download files in a ZATS Mimic test case

In order to simulate same behavior as ZK client engine doing, ZATS Mimic introduces the Resource interface. It represents a downloadable resource file at server. The typical steps for testing downloading are:

  1. perform some operations through operation agents
  2. check is there a downloadable resource through desktop agent
  3. fetch and verify the information or content of the resource
@Test
public void test() throws Exception {
	DesktopAgent desktop = Zats.newClient().connect("/download.zul");
	Assert.assertNull(desktop.getDownloadable());
	desktop.query("#btn").click();
	Resource resource = desktop.getDownloadable();
	Assert.assertNotNull(resource);
	Assert.assertEquals("hello.txt", resource.getName());
	String content = fetchContent(resource.getInputStream());
	Assert.assertEquals("Hello world!", content);
}
  • Line 14-16: Because ZATS Mimic handles the response from ZK application automatically, we can get the current downloadable resource file from the DesktopAgent.getDownloadable(). The method might return null when getting the downloadable resource, it indicates that there is no downloadable resource after the previous operation.
  • Line 17-19: We can get more information from Resource, or fetch the content of resource file in binary through the input stream.



Last Update : 2022/01/20

Copyright © Potix Corporation. This article is licensed under GNU Free Documentation License.