OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 package org.chromium.net.test; | 5 package org.chromium.net.test; |
6 | 6 |
7 import org.chromium.base.CalledByNative; | 7 import org.chromium.base.CalledByNative; |
8 import org.chromium.base.JNINamespace; | 8 import org.chromium.base.JNINamespace; |
9 | 9 |
10 import java.io.File; | 10 import java.io.File; |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
58 * | 58 * |
59 * Note that this should be called after handlers are set up, including any
relevant calls | 59 * Note that this should be called after handlers are set up, including any
relevant calls |
60 * serveFilesFromDirectory. | 60 * serveFilesFromDirectory. |
61 * | 61 * |
62 * @return Whether the server was successfully initialized. | 62 * @return Whether the server was successfully initialized. |
63 */ | 63 */ |
64 public boolean initializeAndWaitUntilReady() { | 64 public boolean initializeAndWaitUntilReady() { |
65 return nativeInitializeAndWaitUntilReady(mNativeEmbeddedTestServer); | 65 return nativeInitializeAndWaitUntilReady(mNativeEmbeddedTestServer); |
66 } | 66 } |
67 | 67 |
| 68 /** Thrown if a server can't be set up. */ |
| 69 public static final class SetupFailedError extends Error { |
| 70 public SetupFailedError() { |
| 71 super("Failed to set up EmbeddedTestServer."); |
| 72 } |
| 73 } |
| 74 |
| 75 /** Create and initialize a server that serves files from the provided direc
tory. |
| 76 * |
| 77 * This handles native object initialization, server configuration, and ser
ver initialization. |
| 78 * On returning, the server is ready for use. |
| 79 * |
| 80 * @param directory The directory from which files should be served. |
| 81 * @return The created server. |
| 82 * @throws SetupFailedError if the server can't be initialized. |
| 83 */ |
| 84 public static EmbeddedTestServer createAndStartFileServer(File directory) { |
| 85 EmbeddedTestServer server = new EmbeddedTestServer(); |
| 86 server.initializeNative(); |
| 87 server.serveFilesFromDirectory(directory); |
| 88 if (!server.initializeAndWaitUntilReady()) { |
| 89 throw new SetupFailedError(); |
| 90 } |
| 91 return server; |
| 92 } |
| 93 |
68 /** Get the full URL for the given relative URL. | 94 /** Get the full URL for the given relative URL. |
69 * | 95 * |
70 * @param relativeUrl The relative URL for which a full URL will be obtaine
d. | 96 * @param relativeUrl The relative URL for which a full URL will be obtaine
d. |
71 * @return The URL as a String. | 97 * @return The URL as a String. |
72 */ | 98 */ |
73 public String getURL(String relativeUrl) { | 99 public String getURL(String relativeUrl) { |
74 return nativeGetURL(mNativeEmbeddedTestServer, relativeUrl); | 100 return nativeGetURL(mNativeEmbeddedTestServer, relativeUrl); |
75 } | 101 } |
76 | 102 |
77 /** Shutdown the server. | 103 /** Shutdown the server. |
78 * | 104 * |
79 * @return Whether the server was successfully shut down. | 105 * @return Whether the server was successfully shut down. |
80 */ | 106 */ |
81 public boolean shutdownAndWaitUntilComplete() { | 107 public boolean shutdownAndWaitUntilComplete() { |
82 return nativeShutdownAndWaitUntilComplete(mNativeEmbeddedTestServer); | 108 return nativeShutdownAndWaitUntilComplete(mNativeEmbeddedTestServer); |
83 } | 109 } |
84 | 110 |
85 /** Destroy the native EmbeddedTestServer object. */ | 111 /** Destroy the native EmbeddedTestServer object. */ |
86 public void destroy() { | 112 public void destroy() { |
87 assert mNativeEmbeddedTestServer != 0; | 113 assert mNativeEmbeddedTestServer != 0; |
88 nativeDestroy(mNativeEmbeddedTestServer); | 114 nativeDestroy(mNativeEmbeddedTestServer); |
89 assert mNativeEmbeddedTestServer == 0; | 115 assert mNativeEmbeddedTestServer == 0; |
90 } | 116 } |
91 | 117 |
| 118 /** Thrown if a server can't be torn down. */ |
| 119 public static final class TeardownFailedError extends Error { |
| 120 public TeardownFailedError() { |
| 121 super("Failed to tear down EmbeddedTestServer."); |
| 122 } |
| 123 } |
| 124 |
| 125 /** Stop and destroy the provided server. |
| 126 * |
| 127 * This handles stopping the server and destroying the native object. |
| 128 * |
| 129 * @param server The server to stop and destroy. |
| 130 * @throws TeardownFailedError if the server can't be shut down. |
| 131 */ |
| 132 public static void stopAndDestroyServer(EmbeddedTestServer server) { |
| 133 if (!server.shutdownAndWaitUntilComplete()) { |
| 134 throw new TeardownFailedError(); |
| 135 } |
| 136 server.destroy(); |
| 137 } |
| 138 |
92 @CalledByNative | 139 @CalledByNative |
93 private void setNativePtr(long nativePtr) { | 140 private void setNativePtr(long nativePtr) { |
94 assert mNativeEmbeddedTestServer == 0; | 141 assert mNativeEmbeddedTestServer == 0; |
95 mNativeEmbeddedTestServer = nativePtr; | 142 mNativeEmbeddedTestServer = nativePtr; |
96 } | 143 } |
97 | 144 |
98 @CalledByNative | 145 @CalledByNative |
99 private void clearNativePtr() { | 146 private void clearNativePtr() { |
100 assert mNativeEmbeddedTestServer != 0; | 147 assert mNativeEmbeddedTestServer != 0; |
101 mNativeEmbeddedTestServer = 0; | 148 mNativeEmbeddedTestServer = 0; |
102 } | 149 } |
103 | 150 |
104 private native void nativeInit(); | 151 private native void nativeInit(); |
105 private native void nativeDestroy(long nativeEmbeddedTestServerAndroid); | 152 private native void nativeDestroy(long nativeEmbeddedTestServerAndroid); |
106 private native boolean nativeInitializeAndWaitUntilReady(long nativeEmbedded
TestServerAndroid); | 153 private native boolean nativeInitializeAndWaitUntilReady(long nativeEmbedded
TestServerAndroid); |
107 private native boolean nativeShutdownAndWaitUntilComplete(long nativeEmbedde
dTestServerAndroid); | 154 private native boolean nativeShutdownAndWaitUntilComplete(long nativeEmbedde
dTestServerAndroid); |
108 private native String nativeGetURL(long nativeEmbeddedTestServerAndroid, Str
ing relativeUrl); | 155 private native String nativeGetURL(long nativeEmbeddedTestServerAndroid, Str
ing relativeUrl); |
109 private native void nativeServeFilesFromDirectory( | 156 private native void nativeServeFilesFromDirectory( |
110 long nativeEmbeddedTestServerAndroid, String directoryPath); | 157 long nativeEmbeddedTestServerAndroid, String directoryPath); |
111 } | 158 } |
OLD | NEW |