Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 #ifndef NET_WEBSOCKETS_WEBSOCKET_TEST_UTIL_H_ | 5 #ifndef NET_WEBSOCKETS_WEBSOCKET_TEST_UTIL_H_ |
| 6 #define NET_WEBSOCKETS_WEBSOCKET_TEST_UTIL_H_ | 6 #define NET_WEBSOCKETS_WEBSOCKET_TEST_UTIL_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
| 11 #include "base/memory/scoped_ptr.h" | 11 #include "base/memory/scoped_ptr.h" |
| 12 #include "net/url_request/url_request_test_util.h" | 12 #include "net/url_request/url_request_test_util.h" |
| 13 #include "net/websockets/websocket_stream.h" | 13 #include "net/websockets/websocket_stream.h" |
| 14 | 14 |
| 15 class GURL; | 15 class GURL; |
| 16 | 16 |
| 17 namespace url { | 17 namespace url { |
| 18 class Origin; | 18 class Origin; |
| 19 } // namespace url | 19 } // namespace url |
| 20 | 20 |
| 21 namespace net { | 21 namespace net { |
| 22 | 22 |
| 23 class BoundNetLog; | 23 class BoundNetLog; |
| 24 class DeterministicMockClientSocketFactory; | |
| 24 class DeterministicSocketData; | 25 class DeterministicSocketData; |
| 25 class URLRequestContext; | 26 class URLRequestContext; |
| 26 class WebSocketHandshakeStreamCreateHelper; | 27 class WebSocketHandshakeStreamCreateHelper; |
| 27 class DeterministicMockClientSocketFactory; | 28 struct SSLSocketDataProvider; |
| 28 | 29 |
| 29 class LinearCongruentialGenerator { | 30 class LinearCongruentialGenerator { |
| 30 public: | 31 public: |
| 31 explicit LinearCongruentialGenerator(uint32 seed); | 32 explicit LinearCongruentialGenerator(uint32 seed); |
| 32 uint32 Generate(); | 33 uint32 Generate(); |
| 33 | 34 |
| 34 private: | 35 private: |
| 35 uint64 current_; | 36 uint64 current_; |
| 36 }; | 37 }; |
| 37 | 38 |
| (...skipping 23 matching lines...) Expand all Loading... | |
| 61 // This class provides a convenient way to construct a | 62 // This class provides a convenient way to construct a |
| 62 // DeterministicMockClientSocketFactory for WebSocket tests. | 63 // DeterministicMockClientSocketFactory for WebSocket tests. |
| 63 class WebSocketDeterministicMockClientSocketFactoryMaker { | 64 class WebSocketDeterministicMockClientSocketFactoryMaker { |
| 64 public: | 65 public: |
| 65 WebSocketDeterministicMockClientSocketFactoryMaker(); | 66 WebSocketDeterministicMockClientSocketFactoryMaker(); |
| 66 ~WebSocketDeterministicMockClientSocketFactoryMaker(); | 67 ~WebSocketDeterministicMockClientSocketFactoryMaker(); |
| 67 | 68 |
| 68 // The socket created by the factory will expect |expect_written| to be | 69 // The socket created by the factory will expect |expect_written| to be |
| 69 // written to the socket, and will respond with |return_to_read|. The test | 70 // written to the socket, and will respond with |return_to_read|. The test |
| 70 // will fail if the expected text is not written, or all the bytes are not | 71 // will fail if the expected text is not written, or all the bytes are not |
| 71 // read. | 72 // read. |
|
tyoshino (SeeGerritForStatus)
2014/06/03 12:11:59
write some comment to say that this method "adds"
Adam Rice
2014/06/03 12:59:51
Done.
| |
| 72 void SetExpectations(const std::string& expect_written, | 73 void SetExpectations(const std::string& expect_written, |
| 73 const std::string& return_to_read); | 74 const std::string& return_to_read); |
| 74 | 75 |
| 75 // A low-level interface to permit arbitrary expectations to be set. | 76 // A low-level interface to permit arbitrary expectations to be added. |
| 76 void SetRawExpectations(scoped_ptr<DeterministicSocketData> socket_data); | 77 void AddRawExpectations(scoped_ptr<DeterministicSocketData> socket_data); |
| 78 | |
| 79 // Allow an SSL socket data provider to be added. | |
| 80 void AddSSLSocketDataProvider( | |
| 81 scoped_ptr<SSLSocketDataProvider> ssl_socket_data); | |
| 77 | 82 |
| 78 // Call to get a pointer to the factory, which remains owned by this object. | 83 // Call to get a pointer to the factory, which remains owned by this object. |
| 79 DeterministicMockClientSocketFactory* factory(); | 84 DeterministicMockClientSocketFactory* factory(); |
| 80 | 85 |
| 81 private: | 86 private: |
| 82 struct Detail; | 87 struct Detail; |
| 83 scoped_ptr<Detail> detail_; | 88 scoped_ptr<Detail> detail_; |
| 84 | 89 |
| 85 DISALLOW_COPY_AND_ASSIGN(WebSocketDeterministicMockClientSocketFactoryMaker); | 90 DISALLOW_COPY_AND_ASSIGN(WebSocketDeterministicMockClientSocketFactoryMaker); |
| 86 }; | 91 }; |
| 87 | 92 |
| 88 // This class encapsulates the details of creating a | 93 // This class encapsulates the details of creating a |
| 89 // TestURLRequestContext that returns mock ClientSocketHandles that do what is | 94 // TestURLRequestContext that returns mock ClientSocketHandles that do what is |
| 90 // required by the tests. | 95 // required by the tests. |
| 91 struct WebSocketTestURLRequestContextHost { | 96 struct WebSocketTestURLRequestContextHost { |
| 92 public: | 97 public: |
| 93 WebSocketTestURLRequestContextHost(); | 98 WebSocketTestURLRequestContextHost(); |
| 94 ~WebSocketTestURLRequestContextHost(); | 99 ~WebSocketTestURLRequestContextHost(); |
| 95 | 100 |
| 96 void SetExpectations(const std::string& expect_written, | 101 void SetExpectations(const std::string& expect_written, |
| 97 const std::string& return_to_read) { | 102 const std::string& return_to_read) { |
| 98 maker_.SetExpectations(expect_written, return_to_read); | 103 maker_.SetExpectations(expect_written, return_to_read); |
| 99 } | 104 } |
| 100 | 105 |
| 101 void SetRawExpectations(scoped_ptr<DeterministicSocketData> socket_data); | 106 void AddRawExpectations(scoped_ptr<DeterministicSocketData> socket_data); |
| 107 | |
| 108 // Allow an SSL socket data provider to be added. | |
| 109 void AddSSLSocketDataProvider( | |
| 110 scoped_ptr<SSLSocketDataProvider> ssl_socket_data); | |
| 102 | 111 |
| 103 // Call after calling one of SetExpections() or SetRawExpectations(). The | 112 // Call after calling one of SetExpections() or SetRawExpectations(). The |
| 104 // returned pointer remains owned by this object. This should only be called | 113 // returned pointer remains owned by this object. This should only be called |
| 105 // once. | 114 // once. |
| 106 TestURLRequestContext* GetURLRequestContext(); | 115 TestURLRequestContext* GetURLRequestContext(); |
| 107 | 116 |
| 108 private: | 117 private: |
| 109 WebSocketDeterministicMockClientSocketFactoryMaker maker_; | 118 WebSocketDeterministicMockClientSocketFactoryMaker maker_; |
| 110 TestURLRequestContext url_request_context_; | 119 TestURLRequestContext url_request_context_; |
| 111 TestNetworkDelegate network_delegate_; | 120 TestNetworkDelegate network_delegate_; |
| 112 | 121 |
| 113 DISALLOW_COPY_AND_ASSIGN(WebSocketTestURLRequestContextHost); | 122 DISALLOW_COPY_AND_ASSIGN(WebSocketTestURLRequestContextHost); |
| 114 }; | 123 }; |
| 115 | 124 |
| 116 } // namespace net | 125 } // namespace net |
| 117 | 126 |
| 118 #endif // NET_WEBSOCKETS_WEBSOCKET_TEST_UTIL_H_ | 127 #endif // NET_WEBSOCKETS_WEBSOCKET_TEST_UTIL_H_ |
| OLD | NEW |