Improve test coverage for depends-on operators via REST

As depends-on plugin query operators & switches are used via REST
endpoint, test coverage is needed for REST alongside SSH.

Change-Id: I76124894371e064c2ba595665b48b5d7d86748c9
diff --git a/test/test_dependson.sh b/test/test_dependson.sh
index 6ccb7e2..284768e 100755
--- a/test/test_dependson.sh
+++ b/test/test_dependson.sh
@@ -3,11 +3,15 @@
 # run a gerrit ssh command
 gssh() { ssh -x -p "$PORT" "$SERVER" "$@" ; 2>&1 ; } # [args]...
 
-query() {
+query_ssh() {
     gssh gerrit query --format=json "$@" | head -1 | \
         python -c 'import sys,json; print json.dumps(json.load(sys.stdin))'
 }
 
+query_http() { # query > changes_list
+    curl --netrc --silent --request GET "http://$SERVER:8080/a/changes/?q=$1" | tail -1
+}
+
 q() { "$@" > /dev/null 2>&1 ; } # cmd [args...]  # quiet a command
 
 die() { echo -e "$@" ; exit 1 ; } # error_message
@@ -176,7 +180,7 @@
 src_change=$(create_change "$SRC_REF_BRANCH" "$FILE_A") || exit
 gssh gerrit review --message \'"Depends-on: $base_change"\' "$src_change",1
 dest_change=$(cherry_pick_change "$src_change" "$DEST_REF")
-expected="Depends-on: $(query "$base_change" | jq --raw-output '.id')"
+expected="Depends-on: $(query_ssh "$base_change" | jq --raw-output '.id')"
 actual=$(get_depends_on_tag "$dest_change")
 result_out "propagate depends-on" "$expected" "$actual"
 
@@ -220,15 +224,26 @@
 change=$(create_change "$SRC_REF_BRANCH" "$FILE_A") || exit
 gssh gerrit review --message \
     \'"Depends-on: 10 30 Ieace383c14de79bf202c85063d5a46a0580724dd 20"\' "$change",1
-out=$(query "$change" --depends-on--all | jq --raw-output '.plugins[0].dependsOns')
-result "depends-on query"
-result_out "depends-on query output 1" "10" "$(echo "$out" | jq '.[0].changeNumber')"
-result_out "depends-on query output 2" "30" "$(echo "$out" | jq '.[1].changeNumber')"
-result_out "depends-on query output 3" "Ieace383c14de79bf202c85063d5a46a0580724dd" \
+out=$(query_ssh "change:$change" --depends-on--all | jq --raw-output '.plugins[0].dependsOns')
+result "depends-on query SSH"
+result_out "depends-on query output 1 SSH" "10" "$(echo "$out" | jq '.[0].changeNumber')"
+result_out "depends-on query output 2 SSH" "30" "$(echo "$out" | jq '.[1].changeNumber')"
+result_out "depends-on query output 3 SSH" "Ieace383c14de79bf202c85063d5a46a0580724dd" \
     "$(echo "$out" | jq --raw-output '.[2].unresolved')"
-result_out "depends-on query output 4" "20" "$(echo "$out" | jq '.[3].changeNumber')"
-result_out "depends-on query output datatype" "number number string number" \
+result_out "depends-on query output 4 SSH" "20" "$(echo "$out" | jq '.[3].changeNumber')"
+result_out "depends-on query output datatype SSH" "number number string number" \
     "$(echo "$out" | jq --raw-output 'map(select(.changeNumber!=null).changeNumber,
         select(.unresolved!=null).unresolved | type) | join(" ")')"
 
+out=$(query_http "change:$change&--depends-on--all" | jq '.[0].plugins[0].depends_ons')
+result "depends-on query HTTP"
+result_out "depends-on query output 1 HTTP" "10" "$(echo "$out" | jq '.[0].change_number')"
+result_out "depends-on query output 2 HTTP" "30" "$(echo "$out" | jq '.[1].change_number')"
+result_out "depends-on query output 3 HTTP" "Ieace383c14de79bf202c85063d5a46a0580724dd" \
+    "$(echo "$out" | jq --raw-output '.[2].unresolved')"
+result_out "depends-on query output 4 HTTP" "20" "$(echo "$out" | jq '.[3].change_number')"
+result_out "depends-on query output datatype HTTP" "number number string number" \
+    "$(echo "$out" | jq --raw-output 'map(select(.change_number!=null).change_number,
+        select(.unresolved!=null).unresolved | type) | join(" ")')"
+
 exit $RESULT
diff --git a/test/test_dependson_operators.sh b/test/test_dependson_operators.sh
index 96fe320..0e46d19 100755
--- a/test/test_dependson_operators.sh
+++ b/test/test_dependson_operators.sh
@@ -11,7 +11,11 @@
 # run a gerrit ssh command
 gssh() { ssh -x -p "$PORT" "$SERVER" "$@" ; 2>&1 ; } # [args]...
 
-query() { gssh gerrit query --format=json "$@" | head -1 ; }
+query_ssh() { gssh gerrit query --format=json "$@" | head -1 ; }
+
+query_http() { # query > changes_list
+    curl --netrc --silent --request GET "http://$SERVER:8080/a/changes/?q=$1" | tail -1
+}
 
 q() { "$@" > /dev/null 2>&1 ; } # cmd [args...]  # quiet a command
 
@@ -125,35 +129,47 @@
 CHANGE=$(create_change "$SRC_REF_BRANCH" "$FILE_A") || \
     die "Failed to create change on project: $PROJECT branch: $SRC_REF_BRANCH"
 gssh gerrit review --message \'"Depends-on: $DEPENDENT_CHANGE"\' "$CHANGE",1
-ACTUAL="$(query "independson:$CHANGE" | jq --raw-output '.number')"
-result_out "independson operator" "$DEPENDENT_CHANGE" "$ACTUAL"
+ACTUAL="$(query_ssh "independson:$CHANGE" | jq --raw-output '.number')"
+result_out "independson operator SSH" "$DEPENDENT_CHANGE" "$ACTUAL"
+ACTUAL="$(query_http "independson:$CHANGE" | jq --raw-output '.[0]._number')"
+result_out "independson operator HTTP" "$DEPENDENT_CHANGE" "$ACTUAL"
 
-ACTUAL="$(query "independson:99999" | jq --raw-output '.number')"
-result_out "independson operator (non-existent change)" "null" "$ACTUAL"
+ACTUAL="$(query_ssh "independson:99999" | jq --raw-output '.number')"
+result_out "independson operator (non-existent change) SSH" "null" "$ACTUAL"
+ACTUAL="$(query_http "independson:99999" | jq 'length')"
+result_out "independson operator (non-existent change) HTTP" "0" "$ACTUAL"
 
 UNRESOLVED_CHANGE=$(create_change "$SRC_REF_BRANCH" "$FILE_A") || \
     die "Failed to create change on project: $PROJECT branch: $SRC_REF_BRANCH"
 CHANGE=$(create_change "$SRC_REF_BRANCH" "$FILE_A") || \
     die "Failed to create change on project: $PROJECT branch: $SRC_REF_BRANCH"
 gssh gerrit review --message \'"Depends-on: https://$SERVER/$UNRESOLVED_CHANGE"\' "$CHANGE",1
-ACTUAL="$(query "independson:$CHANGE" | jq --raw-output '.number')"
-result_out "independson operator (unresolved Depends-on)" "null" "$ACTUAL"
+ACTUAL="$(query_ssh "independson:$CHANGE" | jq --raw-output '.number')"
+result_out "independson operator (unresolved Depends-on) SSH" "null" "$ACTUAL"
+ACTUAL="$(query_http "independson:$CHANGE" | jq 'length')"
+result_out "independson operator (unresolved Depends-on) HTTP" "0" "$ACTUAL"
 
 # ------------------------- has:a_depends-on Tests ---------------------------
 CHANGE_1=$(create_change "$SRC_REF_BRANCH" "$FILE_A") || \
     die "Failed to create change on project: $PROJECT branch: $SRC_REF_BRANCH"
-ACTUAL="$(query "change:$CHANGE_1 has:a_depends-on" | jq --raw-output '.number')"
-result_out "has:a_depends-on operator (no Depends-On)" "null" "$ACTUAL"
+ACTUAL="$(query_ssh "change:$CHANGE_1 has:a_depends-on" | jq --raw-output '.number')"
+result_out "has:a_depends-on operator (no Depends-On) SSH" "null" "$ACTUAL"
+ACTUAL="$(query_http "change:$CHANGE_1%20has:a_depends-on" | jq 'length')"
+result_out "has:a_depends-on operator (no Depends-On) HTTP" "0" "$ACTUAL"
 
 CHANGE_2=$(create_change "$SRC_REF_BRANCH" "$FILE_A") || \
     die "Failed to create change on project: $PROJECT branch: $SRC_REF_BRANCH"
 gssh gerrit review --message \'"Depends-on: $CHANGE_1"\' "$CHANGE_2",1
-ACTUAL="$(query "change:$CHANGE_2 has:a_depends-on" | jq --raw-output '.number')"
-result_out "has:a_depends-on operator (non-empty Depends-on)" "$CHANGE_2" "$ACTUAL"
+ACTUAL="$(query_ssh "change:$CHANGE_2 has:a_depends-on" | jq --raw-output '.number')"
+result_out "has:a_depends-on operator (non-empty Depends-on) SSH" "$CHANGE_2" "$ACTUAL"
+ACTUAL="$(query_http "change:$CHANGE_2%20has:a_depends-on" | jq -r '.[0]._number')"
+result_out "has:a_depends-on operator (non-empty Depends-on) HTTP" "$CHANGE_2" "$ACTUAL"
 
 gssh gerrit review --message \'"Depends-on:"\' "$CHANGE_2",1
-ACTUAL="$(query "change:$CHANGE_2 has:a_depends-on" | jq --raw-output '.number')"
-result_out "has:a_depends-on operator (empty Depends-On)" "null" "$ACTUAL"
+ACTUAL="$(query_ssh "change:$CHANGE_2 has:a_depends-on" | jq --raw-output '.number')"
+result_out "has:a_depends-on operator (empty Depends-On) SSH" "null" "$ACTUAL"
+ACTUAL="$(query_http "change:$CHANGE_2%20has:a_depends-on" | jq 'length')"
+result_out "has:a_depends-on operator (empty Depends-On) HTTP" "0" "$ACTUAL"
 
 # ------------------------- hasdependson:<query> Tests ---------------------------
 CHANGE_1=$(create_change "$SRC_REF_BRANCH" "$FILE_A") || \
@@ -161,7 +177,9 @@
 CHANGE_2=$(create_change "$SRC_REF_BRANCH" "$FILE_A") || \
     die "Failed to create change on project: $PROJECT branch: $SRC_REF_BRANCH"
 gssh gerrit review --message \'"Depends-on: $CHANGE_1"\' "$CHANGE_2",1
-ACTUAL="$(query "change:$CHANGE_2 hasdependson:\"change:$CHANGE_1\"" | jq --raw-output '.number')"
-result_out "hasdependson operator" "$CHANGE_2" "$ACTUAL"
+ACTUAL="$(query_ssh "change:$CHANGE_2 hasdependson:\"change:$CHANGE_1\"" | jq --raw-output '.number')"
+result_out "hasdependson operator SSH" "$CHANGE_2" "$ACTUAL"
+ACTUAL="$(query_http "change:$CHANGE_2%20hasdependson:%22change:$CHANGE_1%22" | jq -r '.[0]._number')"
+result_out "hasdependson operator HTTP" "$CHANGE_2" "$ACTUAL"
 
 exit $RESULT