|
|
@ -19,7 +19,6 @@ package main |
|
|
|
import ( |
|
|
|
import ( |
|
|
|
"bytes" |
|
|
|
"bytes" |
|
|
|
"encoding/json" |
|
|
|
"encoding/json" |
|
|
|
"fmt" |
|
|
|
|
|
|
|
"io/ioutil" |
|
|
|
"io/ioutil" |
|
|
|
"os" |
|
|
|
"os" |
|
|
|
"testing" |
|
|
|
"testing" |
|
|
@ -69,7 +68,7 @@ func TestCLIFeedUpdate(t *testing.T) { |
|
|
|
hexData} |
|
|
|
hexData} |
|
|
|
|
|
|
|
|
|
|
|
// create an update and expect an exit without errors
|
|
|
|
// create an update and expect an exit without errors
|
|
|
|
log.Info(fmt.Sprintf("updating a feed with 'swarm feed update'")) |
|
|
|
log.Info("updating a feed with 'swarm feed update'") |
|
|
|
cmd := runSwarm(t, flags...) |
|
|
|
cmd := runSwarm(t, flags...) |
|
|
|
cmd.ExpectExit() |
|
|
|
cmd.ExpectExit() |
|
|
|
|
|
|
|
|
|
|
@ -116,7 +115,7 @@ func TestCLIFeedUpdate(t *testing.T) { |
|
|
|
"--user", address.Hex(), |
|
|
|
"--user", address.Hex(), |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
log.Info(fmt.Sprintf("getting feed info with 'swarm feed info'")) |
|
|
|
log.Info("getting feed info with 'swarm feed info'") |
|
|
|
cmd = runSwarm(t, flags...) |
|
|
|
cmd = runSwarm(t, flags...) |
|
|
|
_, matches := cmd.ExpectRegexp(`.*`) // regex hack to extract stdout
|
|
|
|
_, matches := cmd.ExpectRegexp(`.*`) // regex hack to extract stdout
|
|
|
|
cmd.ExpectExit() |
|
|
|
cmd.ExpectExit() |
|
|
@ -141,9 +140,9 @@ func TestCLIFeedUpdate(t *testing.T) { |
|
|
|
"--topic", topic.Hex(), |
|
|
|
"--topic", topic.Hex(), |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
log.Info(fmt.Sprintf("Publishing manifest with 'swarm feed create'")) |
|
|
|
log.Info("Publishing manifest with 'swarm feed create'") |
|
|
|
cmd = runSwarm(t, flags...) |
|
|
|
cmd = runSwarm(t, flags...) |
|
|
|
_, matches = cmd.ExpectRegexp(`[a-f\d]{64}`) // regex hack to extract stdout
|
|
|
|
_, matches = cmd.ExpectRegexp(`[a-f\d]{64}`) |
|
|
|
cmd.ExpectExit() |
|
|
|
cmd.ExpectExit() |
|
|
|
|
|
|
|
|
|
|
|
manifestAddress := matches[0] // read the received feed manifest
|
|
|
|
manifestAddress := matches[0] // read the received feed manifest
|
|
|
@ -162,4 +161,36 @@ func TestCLIFeedUpdate(t *testing.T) { |
|
|
|
if !bytes.Equal(data, retrieved) { |
|
|
|
if !bytes.Equal(data, retrieved) { |
|
|
|
t.Fatalf("Received %s, expected %s", retrieved, data) |
|
|
|
t.Fatalf("Received %s, expected %s", retrieved, data) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// test publishing a manifest for a different user
|
|
|
|
|
|
|
|
flags = []string{ |
|
|
|
|
|
|
|
"--bzzapi", srv.URL, |
|
|
|
|
|
|
|
"feed", "create", |
|
|
|
|
|
|
|
"--topic", topic.Hex(), |
|
|
|
|
|
|
|
"--user", "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", // different user
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
log.Info("Publishing manifest with 'swarm feed create' for a different user") |
|
|
|
|
|
|
|
cmd = runSwarm(t, flags...) |
|
|
|
|
|
|
|
_, matches = cmd.ExpectRegexp(`[a-f\d]{64}`) |
|
|
|
|
|
|
|
cmd.ExpectExit() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
manifestAddress = matches[0] // read the received feed manifest
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// now let's try to update that user's manifest which we don't have the private key for
|
|
|
|
|
|
|
|
flags = []string{ |
|
|
|
|
|
|
|
"--bzzapi", srv.URL, |
|
|
|
|
|
|
|
"--bzzaccount", pkFileName, |
|
|
|
|
|
|
|
"feed", "update", |
|
|
|
|
|
|
|
"--manifest", manifestAddress, |
|
|
|
|
|
|
|
hexData} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// create an update and expect an error given there is a user mismatch
|
|
|
|
|
|
|
|
log.Info("updating a feed with 'swarm feed update'") |
|
|
|
|
|
|
|
cmd = runSwarm(t, flags...) |
|
|
|
|
|
|
|
cmd.ExpectRegexp("Fatal:.*") // best way so far to detect a failure.
|
|
|
|
|
|
|
|
cmd.ExpectExit() |
|
|
|
|
|
|
|
if cmd.ExitStatus() == 0 { |
|
|
|
|
|
|
|
t.Fatal("Expected nonzero exit code when updating a manifest with the wrong user. Got 0.") |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|