|
|
|
|
@@ -27,59 +27,72 @@ use v1::helpers::{SignerService, NetworkSettings};
|
|
|
|
|
use v1::tests::helpers::{TestSyncProvider, Config, TestMinerService, TestFetch};
|
|
|
|
|
use super::manage_network::TestManageNetwork;
|
|
|
|
|
|
|
|
|
|
fn miner_service() -> Arc<TestMinerService> {
|
|
|
|
|
Arc::new(TestMinerService::default())
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fn client_service() -> Arc<TestBlockChainClient> {
|
|
|
|
|
Arc::new(TestBlockChainClient::default())
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pub fn sync_provider() -> Arc<TestSyncProvider> {
|
|
|
|
|
Arc::new(TestSyncProvider::new(Config {
|
|
|
|
|
network_id: U256::from(3),
|
|
|
|
|
num_peers: 120,
|
|
|
|
|
}))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fn logger() -> Arc<RotatingLogger> {
|
|
|
|
|
Arc::new(RotatingLogger::new("rpc=trace".to_owned()))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fn settings() -> Arc<NetworkSettings> {
|
|
|
|
|
Arc::new(NetworkSettings {
|
|
|
|
|
name: "mynode".to_owned(),
|
|
|
|
|
chain: "testchain".to_owned(),
|
|
|
|
|
network_port: 30303,
|
|
|
|
|
rpc_enabled: true,
|
|
|
|
|
rpc_interface: "all".to_owned(),
|
|
|
|
|
rpc_port: 8545,
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pub fn network_service() -> Arc<ManageNetwork> {
|
|
|
|
|
Arc::new(TestManageNetwork)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pub type TestEthcoreClient = EthcoreClient<TestBlockChainClient, TestMinerService, TestSyncProvider, TestFetch>;
|
|
|
|
|
|
|
|
|
|
pub fn ethcore_client(
|
|
|
|
|
client: &Arc<TestBlockChainClient>,
|
|
|
|
|
miner: &Arc<TestMinerService>,
|
|
|
|
|
sync: &Arc<TestSyncProvider>,
|
|
|
|
|
net: &Arc<ManageNetwork>)
|
|
|
|
|
-> TestEthcoreClient {
|
|
|
|
|
EthcoreClient::with_fetch(client, miner, sync, net, logger(), settings(), None)
|
|
|
|
|
pub struct Dependencies {
|
|
|
|
|
pub miner: Arc<TestMinerService>,
|
|
|
|
|
pub client: Arc<TestBlockChainClient>,
|
|
|
|
|
pub sync: Arc<TestSyncProvider>,
|
|
|
|
|
pub logger: Arc<RotatingLogger>,
|
|
|
|
|
pub settings: Arc<NetworkSettings>,
|
|
|
|
|
pub network: Arc<ManageNetwork>,
|
|
|
|
|
pub dapps_port: Option<u16>,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl Dependencies {
|
|
|
|
|
pub fn new() -> Self {
|
|
|
|
|
Dependencies {
|
|
|
|
|
miner: Arc::new(TestMinerService::default()),
|
|
|
|
|
client: Arc::new(TestBlockChainClient::default()),
|
|
|
|
|
sync: Arc::new(TestSyncProvider::new(Config {
|
|
|
|
|
network_id: U256::from(3),
|
|
|
|
|
num_peers: 120,
|
|
|
|
|
})),
|
|
|
|
|
logger: Arc::new(RotatingLogger::new("rpc=trace".to_owned())),
|
|
|
|
|
settings: Arc::new(NetworkSettings {
|
|
|
|
|
name: "mynode".to_owned(),
|
|
|
|
|
chain: "testchain".to_owned(),
|
|
|
|
|
network_port: 30303,
|
|
|
|
|
rpc_enabled: true,
|
|
|
|
|
rpc_interface: "all".to_owned(),
|
|
|
|
|
rpc_port: 8545,
|
|
|
|
|
}),
|
|
|
|
|
network: Arc::new(TestManageNetwork),
|
|
|
|
|
dapps_port: Some(18080),
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pub fn client(&self, signer: Option<Arc<SignerService>>) -> TestEthcoreClient {
|
|
|
|
|
EthcoreClient::with_fetch(
|
|
|
|
|
&self.client,
|
|
|
|
|
&self.miner,
|
|
|
|
|
&self.sync,
|
|
|
|
|
&self.network,
|
|
|
|
|
self.logger.clone(),
|
|
|
|
|
self.settings.clone(),
|
|
|
|
|
signer,
|
|
|
|
|
self.dapps_port,
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fn default_client(&self) -> IoHandler {
|
|
|
|
|
let io = IoHandler::new();
|
|
|
|
|
io.add_delegate(self.client(None).to_delegate());
|
|
|
|
|
io
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fn with_signer(&self, signer: SignerService) -> IoHandler {
|
|
|
|
|
let io = IoHandler::new();
|
|
|
|
|
io.add_delegate(self.client(Some(Arc::new(signer))).to_delegate());
|
|
|
|
|
io
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
|
fn rpc_ethcore_extra_data() {
|
|
|
|
|
let miner = miner_service();
|
|
|
|
|
let client = client_service();
|
|
|
|
|
let sync = sync_provider();
|
|
|
|
|
let net = network_service();
|
|
|
|
|
let io = IoHandler::new();
|
|
|
|
|
io.add_delegate(ethcore_client(&client, &miner, &sync, &net).to_delegate());
|
|
|
|
|
let deps = Dependencies::new();
|
|
|
|
|
let io = deps.default_client();
|
|
|
|
|
|
|
|
|
|
let request = r#"{"jsonrpc": "2.0", "method": "ethcore_extraData", "params": [], "id": 1}"#;
|
|
|
|
|
let response = r#"{"jsonrpc":"2.0","result":"0x01020304","id":1}"#;
|
|
|
|
|
@@ -92,12 +105,8 @@ fn rpc_ethcore_default_extra_data() {
|
|
|
|
|
use util::misc;
|
|
|
|
|
use util::ToPretty;
|
|
|
|
|
|
|
|
|
|
let miner = miner_service();
|
|
|
|
|
let client = client_service();
|
|
|
|
|
let sync = sync_provider();
|
|
|
|
|
let net = network_service();
|
|
|
|
|
let io = IoHandler::new();
|
|
|
|
|
io.add_delegate(ethcore_client(&client, &miner, &sync, &net).to_delegate());
|
|
|
|
|
let deps = Dependencies::new();
|
|
|
|
|
let io = deps.default_client();
|
|
|
|
|
|
|
|
|
|
let request = r#"{"jsonrpc": "2.0", "method": "ethcore_defaultExtraData", "params": [], "id": 1}"#;
|
|
|
|
|
let response = format!(r#"{{"jsonrpc":"2.0","result":"0x{}","id":1}}"#, misc::version_data().to_hex());
|
|
|
|
|
@@ -107,12 +116,8 @@ fn rpc_ethcore_default_extra_data() {
|
|
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
|
fn rpc_ethcore_gas_floor_target() {
|
|
|
|
|
let miner = miner_service();
|
|
|
|
|
let client = client_service();
|
|
|
|
|
let sync = sync_provider();
|
|
|
|
|
let net = network_service();
|
|
|
|
|
let io = IoHandler::new();
|
|
|
|
|
io.add_delegate(ethcore_client(&client, &miner, &sync, &net).to_delegate());
|
|
|
|
|
let deps = Dependencies::new();
|
|
|
|
|
let io = deps.default_client();
|
|
|
|
|
|
|
|
|
|
let request = r#"{"jsonrpc": "2.0", "method": "ethcore_gasFloorTarget", "params": [], "id": 1}"#;
|
|
|
|
|
let response = r#"{"jsonrpc":"2.0","result":"0x3039","id":1}"#;
|
|
|
|
|
@@ -122,12 +127,8 @@ fn rpc_ethcore_gas_floor_target() {
|
|
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
|
fn rpc_ethcore_min_gas_price() {
|
|
|
|
|
let miner = miner_service();
|
|
|
|
|
let client = client_service();
|
|
|
|
|
let sync = sync_provider();
|
|
|
|
|
let net = network_service();
|
|
|
|
|
let io = IoHandler::new();
|
|
|
|
|
io.add_delegate(ethcore_client(&client, &miner, &sync, &net).to_delegate());
|
|
|
|
|
let deps = Dependencies::new();
|
|
|
|
|
let io = deps.default_client();
|
|
|
|
|
|
|
|
|
|
let request = r#"{"jsonrpc": "2.0", "method": "ethcore_minGasPrice", "params": [], "id": 1}"#;
|
|
|
|
|
let response = r#"{"jsonrpc":"2.0","result":"0x1312d00","id":1}"#;
|
|
|
|
|
@@ -137,16 +138,11 @@ fn rpc_ethcore_min_gas_price() {
|
|
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
|
fn rpc_ethcore_dev_logs() {
|
|
|
|
|
let miner = miner_service();
|
|
|
|
|
let client = client_service();
|
|
|
|
|
let sync = sync_provider();
|
|
|
|
|
let net = network_service();
|
|
|
|
|
let logger = logger();
|
|
|
|
|
logger.append("a".to_owned());
|
|
|
|
|
logger.append("b".to_owned());
|
|
|
|
|
let ethcore: TestEthcoreClient = EthcoreClient::with_fetch(&client, &miner, &sync, &net, logger.clone(), settings(), None);
|
|
|
|
|
let io = IoHandler::new();
|
|
|
|
|
io.add_delegate(ethcore.to_delegate());
|
|
|
|
|
let deps = Dependencies::new();
|
|
|
|
|
deps.logger.append("a".to_owned());
|
|
|
|
|
deps.logger.append("b".to_owned());
|
|
|
|
|
|
|
|
|
|
let io = deps.default_client();
|
|
|
|
|
|
|
|
|
|
let request = r#"{"jsonrpc": "2.0", "method": "ethcore_devLogs", "params":[], "id": 1}"#;
|
|
|
|
|
let response = r#"{"jsonrpc":"2.0","result":["b","a"],"id":1}"#;
|
|
|
|
|
@@ -156,12 +152,8 @@ fn rpc_ethcore_dev_logs() {
|
|
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
|
fn rpc_ethcore_dev_logs_levels() {
|
|
|
|
|
let miner = miner_service();
|
|
|
|
|
let client = client_service();
|
|
|
|
|
let sync = sync_provider();
|
|
|
|
|
let net = network_service();
|
|
|
|
|
let io = IoHandler::new();
|
|
|
|
|
io.add_delegate(ethcore_client(&client, &miner, &sync, &net).to_delegate());
|
|
|
|
|
let deps = Dependencies::new();
|
|
|
|
|
let io = deps.default_client();
|
|
|
|
|
|
|
|
|
|
let request = r#"{"jsonrpc": "2.0", "method": "ethcore_devLogsLevels", "params":[], "id": 1}"#;
|
|
|
|
|
let response = r#"{"jsonrpc":"2.0","result":"rpc=trace","id":1}"#;
|
|
|
|
|
@@ -171,12 +163,8 @@ fn rpc_ethcore_dev_logs_levels() {
|
|
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
|
fn rpc_ethcore_transactions_limit() {
|
|
|
|
|
let miner = miner_service();
|
|
|
|
|
let client = client_service();
|
|
|
|
|
let sync = sync_provider();
|
|
|
|
|
let net = network_service();
|
|
|
|
|
let io = IoHandler::new();
|
|
|
|
|
io.add_delegate(ethcore_client(&client, &miner, &sync, &net).to_delegate());
|
|
|
|
|
let deps = Dependencies::new();
|
|
|
|
|
let io = deps.default_client();
|
|
|
|
|
|
|
|
|
|
let request = r#"{"jsonrpc": "2.0", "method": "ethcore_transactionsLimit", "params":[], "id": 1}"#;
|
|
|
|
|
let response = r#"{"jsonrpc":"2.0","result":1024,"id":1}"#;
|
|
|
|
|
@@ -186,12 +174,8 @@ fn rpc_ethcore_transactions_limit() {
|
|
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
|
fn rpc_ethcore_net_chain() {
|
|
|
|
|
let miner = miner_service();
|
|
|
|
|
let client = client_service();
|
|
|
|
|
let sync = sync_provider();
|
|
|
|
|
let net = network_service();
|
|
|
|
|
let io = IoHandler::new();
|
|
|
|
|
io.add_delegate(ethcore_client(&client, &miner, &sync, &net).to_delegate());
|
|
|
|
|
let deps = Dependencies::new();
|
|
|
|
|
let io = deps.default_client();
|
|
|
|
|
|
|
|
|
|
let request = r#"{"jsonrpc": "2.0", "method": "ethcore_netChain", "params":[], "id": 1}"#;
|
|
|
|
|
let response = r#"{"jsonrpc":"2.0","result":"testchain","id":1}"#;
|
|
|
|
|
@@ -201,12 +185,8 @@ fn rpc_ethcore_net_chain() {
|
|
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
|
fn rpc_ethcore_net_peers() {
|
|
|
|
|
let miner = miner_service();
|
|
|
|
|
let client = client_service();
|
|
|
|
|
let sync = sync_provider();
|
|
|
|
|
let net = network_service();
|
|
|
|
|
let io = IoHandler::new();
|
|
|
|
|
io.add_delegate(ethcore_client(&client, &miner, &sync, &net).to_delegate());
|
|
|
|
|
let deps = Dependencies::new();
|
|
|
|
|
let io = deps.default_client();
|
|
|
|
|
|
|
|
|
|
let request = r#"{"jsonrpc": "2.0", "method": "ethcore_netPeers", "params":[], "id": 1}"#;
|
|
|
|
|
let response = "{\"jsonrpc\":\"2.0\",\"result\":{\"active\":0,\"connected\":120,\"max\":50,\"peers\":[{\"caps\":[\"eth/62\",\"eth/63\"],\
|
|
|
|
|
@@ -221,12 +201,8 @@ fn rpc_ethcore_net_peers() {
|
|
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
|
fn rpc_ethcore_net_port() {
|
|
|
|
|
let miner = miner_service();
|
|
|
|
|
let client = client_service();
|
|
|
|
|
let sync = sync_provider();
|
|
|
|
|
let net = network_service();
|
|
|
|
|
let io = IoHandler::new();
|
|
|
|
|
io.add_delegate(ethcore_client(&client, &miner, &sync, &net).to_delegate());
|
|
|
|
|
let deps = Dependencies::new();
|
|
|
|
|
let io = deps.default_client();
|
|
|
|
|
|
|
|
|
|
let request = r#"{"jsonrpc": "2.0", "method": "ethcore_netPort", "params":[], "id": 1}"#;
|
|
|
|
|
let response = r#"{"jsonrpc":"2.0","result":30303,"id":1}"#;
|
|
|
|
|
@@ -236,12 +212,8 @@ fn rpc_ethcore_net_port() {
|
|
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
|
fn rpc_ethcore_rpc_settings() {
|
|
|
|
|
let miner = miner_service();
|
|
|
|
|
let client = client_service();
|
|
|
|
|
let sync = sync_provider();
|
|
|
|
|
let net = network_service();
|
|
|
|
|
let io = IoHandler::new();
|
|
|
|
|
io.add_delegate(ethcore_client(&client, &miner, &sync, &net).to_delegate());
|
|
|
|
|
let deps = Dependencies::new();
|
|
|
|
|
let io = deps.default_client();
|
|
|
|
|
|
|
|
|
|
let request = r#"{"jsonrpc": "2.0", "method": "ethcore_rpcSettings", "params":[], "id": 1}"#;
|
|
|
|
|
let response = r#"{"jsonrpc":"2.0","result":{"enabled":true,"interface":"all","port":8545},"id":1}"#;
|
|
|
|
|
@@ -251,12 +223,8 @@ fn rpc_ethcore_rpc_settings() {
|
|
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
|
fn rpc_ethcore_node_name() {
|
|
|
|
|
let miner = miner_service();
|
|
|
|
|
let client = client_service();
|
|
|
|
|
let sync = sync_provider();
|
|
|
|
|
let net = network_service();
|
|
|
|
|
let io = IoHandler::new();
|
|
|
|
|
io.add_delegate(ethcore_client(&client, &miner, &sync, &net).to_delegate());
|
|
|
|
|
let deps = Dependencies::new();
|
|
|
|
|
let io = deps.default_client();
|
|
|
|
|
|
|
|
|
|
let request = r#"{"jsonrpc": "2.0", "method": "ethcore_nodeName", "params":[], "id": 1}"#;
|
|
|
|
|
let response = r#"{"jsonrpc":"2.0","result":"mynode","id":1}"#;
|
|
|
|
|
@@ -266,14 +234,8 @@ fn rpc_ethcore_node_name() {
|
|
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
|
fn rpc_ethcore_unsigned_transactions_count() {
|
|
|
|
|
let miner = miner_service();
|
|
|
|
|
let client = client_service();
|
|
|
|
|
let sync = sync_provider();
|
|
|
|
|
let net = network_service();
|
|
|
|
|
let io = IoHandler::new();
|
|
|
|
|
let signer = Arc::new(SignerService::new_test());
|
|
|
|
|
let ethcore: TestEthcoreClient = EthcoreClient::with_fetch(&client, &miner, &sync, &net, logger(), settings(), Some(signer));
|
|
|
|
|
io.add_delegate(ethcore.to_delegate());
|
|
|
|
|
let deps = Dependencies::new();
|
|
|
|
|
let io = deps.with_signer(SignerService::new_test(Some(18180)));
|
|
|
|
|
|
|
|
|
|
let request = r#"{"jsonrpc": "2.0", "method": "ethcore_unsignedTransactionsCount", "params":[], "id": 1}"#;
|
|
|
|
|
let response = r#"{"jsonrpc":"2.0","result":0,"id":1}"#;
|
|
|
|
|
@@ -283,12 +245,8 @@ fn rpc_ethcore_unsigned_transactions_count() {
|
|
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
|
fn rpc_ethcore_unsigned_transactions_count_when_signer_disabled() {
|
|
|
|
|
let miner = miner_service();
|
|
|
|
|
let client = client_service();
|
|
|
|
|
let sync = sync_provider();
|
|
|
|
|
let net = network_service();
|
|
|
|
|
let io = IoHandler::new();
|
|
|
|
|
io.add_delegate(ethcore_client(&client, &miner, &sync, &net).to_delegate());
|
|
|
|
|
let deps = Dependencies::new();
|
|
|
|
|
let io = deps.default_client();
|
|
|
|
|
|
|
|
|
|
let request = r#"{"jsonrpc": "2.0", "method": "ethcore_unsignedTransactionsCount", "params":[], "id": 1}"#;
|
|
|
|
|
let response = r#"{"jsonrpc":"2.0","error":{"code":-32030,"message":"Trusted Signer is disabled. This API is not available.","data":null},"id":1}"#;
|
|
|
|
|
@@ -298,12 +256,8 @@ fn rpc_ethcore_unsigned_transactions_count_when_signer_disabled() {
|
|
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
|
fn rpc_ethcore_hash_content() {
|
|
|
|
|
let miner = miner_service();
|
|
|
|
|
let client = client_service();
|
|
|
|
|
let sync = sync_provider();
|
|
|
|
|
let net = network_service();
|
|
|
|
|
let io = IoHandler::new();
|
|
|
|
|
io.add_delegate(ethcore_client(&client, &miner, &sync, &net).to_delegate());
|
|
|
|
|
let deps = Dependencies::new();
|
|
|
|
|
let io = deps.default_client();
|
|
|
|
|
|
|
|
|
|
let request = r#"{"jsonrpc": "2.0", "method": "ethcore_hashContent", "params":["https://ethcore.io/assets/images/ethcore-black-horizontal.png"], "id": 1}"#;
|
|
|
|
|
let response = r#"{"jsonrpc":"2.0","result":"0x2be00befcf008bc0e7d9cdefc194db9c75352e8632f48498b5a6bfce9f02c88e","id":1}"#;
|
|
|
|
|
@@ -313,12 +267,8 @@ fn rpc_ethcore_hash_content() {
|
|
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
|
fn rpc_ethcore_pending_transactions() {
|
|
|
|
|
let miner = miner_service();
|
|
|
|
|
let client = client_service();
|
|
|
|
|
let sync = sync_provider();
|
|
|
|
|
let net = network_service();
|
|
|
|
|
let io = IoHandler::new();
|
|
|
|
|
io.add_delegate(ethcore_client(&client, &miner, &sync, &net).to_delegate());
|
|
|
|
|
let deps = Dependencies::new();
|
|
|
|
|
let io = deps.default_client();
|
|
|
|
|
|
|
|
|
|
let request = r#"{"jsonrpc": "2.0", "method": "ethcore_pendingTransactions", "params":[], "id": 1}"#;
|
|
|
|
|
let response = r#"{"jsonrpc":"2.0","result":[],"id":1}"#;
|
|
|
|
|
@@ -328,14 +278,45 @@ fn rpc_ethcore_pending_transactions() {
|
|
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
|
fn rpc_ethcore_encrypt() {
|
|
|
|
|
let miner = miner_service();
|
|
|
|
|
let client = client_service();
|
|
|
|
|
let sync = sync_provider();
|
|
|
|
|
let net = network_service();
|
|
|
|
|
let io = IoHandler::new();
|
|
|
|
|
io.add_delegate(ethcore_client(&client, &miner, &sync, &net).to_delegate());
|
|
|
|
|
let deps = Dependencies::new();
|
|
|
|
|
let io = deps.default_client();
|
|
|
|
|
let key = format!("{:?}", Random.generate().unwrap().public());
|
|
|
|
|
|
|
|
|
|
let request = r#"{"jsonrpc": "2.0", "method": "ethcore_encryptMessage", "params":["0x"#.to_owned() + &key + r#"", "0x01"], "id": 1}"#;
|
|
|
|
|
assert!(io.handle_request_sync(&request).unwrap().contains("result"), "Should return success.");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
|
fn rpc_ethcore_signer_port() {
|
|
|
|
|
// given
|
|
|
|
|
let deps = Dependencies::new();
|
|
|
|
|
let io1 = deps.with_signer(SignerService::new_test(Some(18180)));
|
|
|
|
|
let io2 = deps.default_client();
|
|
|
|
|
|
|
|
|
|
// when
|
|
|
|
|
let request = r#"{"jsonrpc": "2.0", "method": "ethcore_signerPort", "params": [], "id": 1}"#;
|
|
|
|
|
let response1 = r#"{"jsonrpc":"2.0","result":18180,"id":1}"#;
|
|
|
|
|
let response2 = r#"{"jsonrpc":"2.0","error":{"code":-32030,"message":"Trusted Signer is disabled. This API is not available.","data":null},"id":1}"#;
|
|
|
|
|
|
|
|
|
|
// then
|
|
|
|
|
assert_eq!(io1.handle_request_sync(request), Some(response1.to_owned()));
|
|
|
|
|
assert_eq!(io2.handle_request_sync(request), Some(response2.to_owned()));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
|
fn rpc_ethcore_dapps_port() {
|
|
|
|
|
// given
|
|
|
|
|
let mut deps = Dependencies::new();
|
|
|
|
|
let io1 = deps.default_client();
|
|
|
|
|
deps.dapps_port = None;
|
|
|
|
|
let io2 = deps.default_client();
|
|
|
|
|
|
|
|
|
|
// when
|
|
|
|
|
let request = r#"{"jsonrpc": "2.0", "method": "ethcore_dappsPort", "params": [], "id": 1}"#;
|
|
|
|
|
let response1 = r#"{"jsonrpc":"2.0","result":18080,"id":1}"#;
|
|
|
|
|
let response2 = r#"{"jsonrpc":"2.0","error":{"code":-32031,"message":"Dapps Server is disabled. This API is not available.","data":null},"id":1}"#;
|
|
|
|
|
|
|
|
|
|
// then
|
|
|
|
|
assert_eq!(io1.handle_request_sync(request), Some(response1.to_owned()));
|
|
|
|
|
assert_eq!(io2.handle_request_sync(request), Some(response2.to_owned()));
|
|
|
|
|
}
|
|
|
|
|
|