PageRenderTime 49ms CodeModel.GetById 21ms RepoModel.GetById 1ms app.codeStats 0ms

/scripts/test/t.camel.sh

https://gitlab.com/drwdal/magma
Shell | 151 lines | 147 code | 3 blank | 1 comment | 1 complexity | 05e080807e9d6894e32541412332c7b0 MD5 | raw file
  1. #!/bin/bash
  2. export SEED=$(head -1 /dev/urandom | od -N 16 | awk '{ print $2 }')
  3. export RANDOM=$SEED
  4. export IDNUM="1"
  5. export USERID="magma"
  6. export COOKIES=`mktemp`
  7. export SQLHOST="localhost"
  8. export CAMELHOST="http://localhost:10000"
  9. export CAMELPATH="$CAMELHOST/portal/camel"
  10. PID=`ps -ef | egrep "src/.debug/magmad|check/.check/magmad.check|tools/mason/.debug/mason" | grep -v grep | awk -F' ' '{ print $2}'`
  11. if [ "$PID" = '' ]; then
  12. tput setaf 1; tput bold; echo "the magma daemon isn't running"; tput sgr0
  13. exit
  14. fi
  15. wget --quiet --retry-connrefused --connect-timeout=1 --waitretry=1 --tries=0 --output-document=/dev/null "$CAMELHOST"
  16. if [ $? != 0 ]; then
  17. tput setaf 1; tput bold; echo "tired of waiting on the magma daemon start"; tput sgr0
  18. exit
  19. fi
  20. submit() {
  21. # Client submission in yellow, server responses in red.
  22. tput setaf 3; tput bold; echo "$1";
  23. # Submit using cURL
  24. # To print the server supplied HTTP headers add --include
  25. export OUTPUT=`curl --silent --cookie "$COOKIES" --cookie-jar "$COOKIES" --data "$1" "$CAMELPATH"`
  26. #export OUTPUT=`curl --verbose --cookie "$COOKIES" --cookie-jar "$COOKIES" --data "$1" "$CAMELPATH"`
  27. # Alternatively to use wget
  28. # To print the server supplied HTTP headers add --server-response
  29. # export OUTPUT=`wget --load-cookies="$COOKIES" --save-cookies="$COOKIES" --quiet --output-document=- --post-data="$1" "$CAMELPATH"`
  30. if [[ "$OUTPUT" =~ "\"result\":" ]] && [[ ! "$OUTPUT" =~ "\"failed\"" ]]; then
  31. tput setaf 2; tput bold; echo $OUTPUT
  32. else
  33. tput setaf 1; tput bold; echo $OUTPUT
  34. fi
  35. tput sgr0; echo ""
  36. export IDNUM=`expr $IDNUM + 1`
  37. }
  38. foldernum() {
  39. unset FOLDERNUM
  40. export FOLDERNUM=`echo "SELECT foldernum FROM Users LEFT JOIN Folders ON Users.usernum = Folders.usernum WHERE Users.userid = '$USERID' AND Folders.foldername = '$1';" | mysql --disable-tee --skip-column-names -u mytool -h "$SQLHOST" --password=aComplex1 Lavabit`
  41. }
  42. messagenums() {
  43. unset SOURCENUM; unset MESSAGENUM
  44. export SOURCENUM=`echo "SELECT foldernum FROM Users LEFT JOIN Folders ON Users.usernum = Folders.usernum WHERE Users.userid = '$USERID' AND Folders.foldername = '$1';" | mysql --disable-tee --skip-column-names -u mytool -h "$SQLHOST" --password=aComplex1 Lavabit`
  45. export MESSAGENUM=`echo "SELECT messagenum FROM Users LEFT JOIN Messages ON Users.usernum = Messages.usernum LEFT JOIN Folders ON Messages.foldernum = Folders.foldernum WHERE Users.userid = '$USERID' AND Folders.foldername = '$1' ORDER BY RAND() LIMIT $2;" | mysql --disable-tee --skip-column-names -u mytool -h "$SQLHOST" --password=aComplex1 Lavabit | tr '\n' ',' | sed -e 's/\,$//g'`
  46. }
  47. contactnums() {
  48. unset SOURCENUM; unset CONTACTNUM
  49. export SOURCENUM=`echo "SELECT foldernum FROM Users LEFT JOIN Folders ON Users.usernum = Folders.usernum WHERE Users.userid = '$USERID' AND Folders.foldername = '$1';" | mysql --disable-tee --skip-column-names -u mytool -h "$SQLHOST" --password=aComplex1 Lavabit`
  50. export CONTACTNUM=`echo "SELECT contactnum FROM Users LEFT JOIN Contacts ON Users.usernum = Contacts.usernum LEFT JOIN Folders ON Contacts.foldernum = Folders.foldernum WHERE Users.userid = '$USERID' AND Folders.foldername = '$1' ORDER BY RAND() LIMIT $2;" | mysql --disable-tee --skip-column-names -u mytool -h "$SQLHOST" --password=aComplex1 Lavabit | tr '\n' ',' | sed -e 's/\,$//g'`
  51. }
  52. echo ""
  53. tput setaf 6; echo "Camelface requests:"; tput sgr0
  54. echo ""
  55. submit "{\"id\":$IDNUM,\"method\":\"auth\",\"params\":{\"username\":\"$USERID\",\"password\":\"test\"}}"
  56. submit "{\"id\":$IDNUM,\"method\":\"config.edit\",\"params\":{\"key\":\"value\"}}"
  57. submit "{\"id\":$IDNUM,\"method\":\"config.load\"}"
  58. submit "{\"id\":$IDNUM,\"method\":\"config.edit\",\"params\":{\"key\":null}}"
  59. submit "{\"id\":$IDNUM,\"method\":\"config.load\"}"
  60. submit "{\"id\":$IDNUM,\"method\":\"config.edit\",\"params\":{\"key.$RANDOM\":\"$RANDOM\"}}"
  61. submit "{\"id\":$IDNUM,\"method\":\"folders.add\",\"params\":{\"context\":\"contacts\",\"name\":\"Flight Crew\"}}"
  62. submit "{\"id\":$IDNUM,\"method\":\"folders.list\",\"params\":{\"context\":\"contacts\"}}"
  63. foldernum "Flight Crew"; submit "{\"id\":$IDNUM,\"method\":\"contacts.add\",\"params\":{\"folderID\":$FOLDERNUM, \"contact\":{\"name\":\"Jenna\", \"email\":\"jenna@jameson.com\"}}}"
  64. contactnums "Flight Crew" "1"; submit "{\"id\":$IDNUM,\"method\":\"contacts.copy\",\"params\":{\"sourceFolderID\":$SOURCENUM, \"targetFolderID\":$SOURCENUM, \"contactID\": $CONTACTNUM }}"
  65. foldernum "Flight Crew"; submit "{\"id\":$IDNUM,\"method\":\"contacts.list\",\"params\":{\"folderID\":$FOLDERNUM }}"
  66. contactnums "Flight Crew" "1"; submit "{\"id\":$IDNUM,\"method\":\"contacts.edit\",\"params\":{\"folderID\":$FOLDERNUM, \"contactID\":$CONTACTNUM, \"contact\":{\"name\":\"Jenna Marie Massoli\", \"email\":\"jenna+private-chats@jameson.com\"}}}"
  67. contactnums "Flight Crew" "1"; submit "{\"id\":$IDNUM,\"method\":\"contacts.load\",\"params\":{\"folderID\":$SOURCENUM, \"contactID\":$CONTACTNUM }}"
  68. contactnums "Flight Crew" "1"; submit "{\"id\":$IDNUM,\"method\":\"contacts.edit\",\"params\":{\"folderID\":$FOLDERNUM, \"contactID\":$CONTACTNUM, \"contact\":{\"name\":\"Jenna\", \"email\":\"jenna@jameson.com\", \"phone\":\"2145551212\", \"notes\":\"The Tuesday night hottie!\"}}}"
  69. contactnums "Flight Crew" "1"; submit "{\"id\":$IDNUM,\"method\":\"contacts.load\",\"params\":{\"folderID\":$SOURCENUM, \"contactID\":$CONTACTNUM }}"
  70. submit "{\"id\":$IDNUM,\"method\":\"folders.add\",\"params\":{\"context\":\"contacts\",\"name\":\"Lovers\"}}"
  71. foldernum "Lovers"; contactnums "Flight Crew" "1"; submit "{\"id\":$IDNUM,\"method\":\"contacts.move\",\"params\":{ \"contactID\":$CONTACTNUM, \"sourceFolderID\":$SOURCENUM, \"targetFolderID\":$FOLDERNUM }}"
  72. foldernum "Flight Crew"; submit "{\"id\":$IDNUM,\"method\":\"contacts.list\",\"params\":{\"folderID\":$FOLDERNUM }}"
  73. foldernum "Lovers"; submit "{\"id\":$IDNUM,\"method\":\"contacts.list\",\"params\":{\"folderID\":$FOLDERNUM }}"
  74. contactnums "Flight Crew" "1"; submit "{\"id\":$IDNUM,\"method\":\"contacts.remove\",\"params\":{\"folderID\":$SOURCENUM, \"contactID\":$CONTACTNUM }}"
  75. contactnums "Lovers" "1"; submit "{\"id\":$IDNUM,\"method\":\"contacts.remove\",\"params\":{\"folderID\":$SOURCENUM, \"contactID\":$CONTACTNUM }}"
  76. foldernum "Lovers"; submit "{\"id\":$IDNUM,\"method\":\"contacts.list\",\"params\":{\"folderID\":$FOLDERNUM }}"
  77. foldernum "Flight Crew"; submit "{\"id\":$IDNUM,\"method\":\"folders.remove\",\"params\":{\"context\":\"contacts\",\"folderID\":$FOLDERNUM }}"
  78. foldernum "Lovers"; submit "{\"id\":$IDNUM,\"method\":\"folders.remove\",\"params\":{\"context\":\"contacts\",\"folderID\":$FOLDERNUM }}"
  79. submit "{\"id\":$IDNUM,\"method\":\"cookies\"}"
  80. submit "{\"id\":$IDNUM,\"method\":\"alert.list\"}"
  81. submit "{\"id\":$IDNUM,\"method\":\"alert.acknowledge\",\"params\":[1,7,13]}"
  82. submit "{\"id\":$IDNUM,\"method\":\"alert.list\"}"
  83. submit "{\"id\":$IDNUM,\"method\":\"folders.list\",\"params\":{\"context\":\"mail\"}}"
  84. submit "{\"id\":$IDNUM,\"method\":\"folders.list\",\"params\":{\"context\":\"settings\"}}"
  85. submit "{\"id\":$IDNUM,\"method\":\"folders.list\",\"params\":{\"context\":\"help\"}}"
  86. submit "{\"id\":$IDNUM,\"method\":\"folders.add\",\"params\":{\"context\":\"mail\",\"name\":\"Camel\"}}"
  87. foldernum "Camel"; submit "{\"id\":$IDNUM,\"method\":\"folders.add\",\"params\":{\"context\":\"mail\",\"parentID\":$FOLDERNUM,\"name\":\"Toe\"}}"
  88. foldernum "Toe"; submit "{\"id\":$IDNUM,\"method\":\"folders.add\",\"params\":{\"context\":\"mail\",\"parentID\":$FOLDERNUM,\"name\":\"Rocks\"}}"
  89. foldernum "Rocks"; submit "{\"id\":$IDNUM,\"method\":\"folders.rename\",\"params\":{\"context\":\"mail\",\"folderID\":$FOLDERNUM,\"name\":\"Dames.Rock\"}}"
  90. foldernum "Dames"; submit "{\"id\":$IDNUM,\"method\":\"folders.rename\",\"params\":{\"context\":\"mail\",\"folderID\":$FOLDERNUM,\"name\":\"Clams\"}}"
  91. foldernum "Rock"; submit "{\"id\":$IDNUM,\"method\":\"folders.remove\",\"params\":{\"context\":\"mail\",\"folderID\":$FOLDERNUM }}"
  92. foldernum "Clams"; submit "{\"id\":$IDNUM,\"method\":\"folders.remove\",\"params\":{\"context\":\"mail\",\"folderID\":$FOLDERNUM }}"
  93. foldernum "Toe"; submit "{\"id\":$IDNUM,\"method\":\"folders.remove\",\"params\":{\"context\":\"mail\",\"folderID\":$FOLDERNUM }}"
  94. foldernum "Camel"; submit "{\"id\":$IDNUM,\"method\":\"folders.remove\",\"params\":{\"context\":\"mail\",\"folderID\":$FOLDERNUM }}"
  95. submit "{\"id\":$IDNUM,\"method\":\"aliases\"}"
  96. submit "{\"id\":$IDNUM,\"method\":\"folders.add\",\"params\":{\"context\":\"mail\",\"name\":\"Duplicate\"}}"
  97. foldernum "Duplicate"; messagenums "Inbox" "100"; submit "{\"id\":$IDNUM,\"method\":\"messages.copy\",\"params\":{\"messageIDs\": [$MESSAGENUM], \"sourceFolderID\":$SOURCENUM, \"targetFolderID\":$FOLDERNUM }}"
  98. foldernum "Duplicate"; messagenums "Inbox" "100"; submit "{\"id\":$IDNUM,\"method\":\"messages.copy\",\"params\":{\"messageIDs\": [$MESSAGENUM], \"sourceFolderID\":$SOURCENUM, \"targetFolderID\":$FOLDERNUM }}"
  99. foldernum "Duplicate"; submit "{\"id\":$IDNUM,\"method\":\"folders.remove\",\"params\":{\"context\":\"mail\",\"folderID\":$FOLDERNUM }}"
  100. submit "{\"id\":$IDNUM,\"method\":\"folders.add\",\"params\":{\"context\":\"mail\",\"name\":\"Duplicate\"}}"
  101. messagenums "Inbox" "1"; submit "{\"id\":$IDNUM,\"method\":\"messages.load\",\"params\":{\"messageID\": $MESSAGENUM, \"folderID\":$SOURCENUM, \"sections\": [\"meta\", \"source\", \"security\", \"server\", \"header\", \"body\", \"attachments\" ]}}"
  102. foldernum "Duplicate"; messagenums "Inbox" "100"; submit "{\"id\":$IDNUM,\"method\":\"messages.copy\",\"params\":{\"messageIDs\": [$MESSAGENUM], \"sourceFolderID\":$SOURCENUM, \"targetFolderID\":$FOLDERNUM }}"
  103. foldernum "Duplicate"; submit "{\"id\":$IDNUM,\"method\":\"folders.remove\",\"params\":{\"context\":\"mail\",\"folderID\":$FOLDERNUM }}"
  104. messagenums "Inbox" "100"; submit "{\"id\":$IDNUM,\"method\":\"messages.flag\",\"params\":{\"action\":\"add\", \"flags\":[\"flagged\"], \"messageIDs\": [$MESSAGENUM], \"folderID\":$SOURCENUM }}"
  105. messagenums "Inbox" "100"; submit "{\"id\":$IDNUM,\"method\":\"messages.tags\",\"params\":{\"action\":\"add\", \"tags\":[\"girlie\",\"girlie-$RANDOM\"], \"messageIDs\": [$MESSAGENUM], \"folderID\":$SOURCENUM }}"
  106. messagenums "Inbox" "100"; submit "{\"id\":$IDNUM,\"method\":\"messages.flag\",\"params\":{\"action\":\"list\", \"messageIDs\": [$MESSAGENUM], \"folderID\":$SOURCENUM }}"
  107. messagenums "Inbox" "100"; submit "{\"id\":$IDNUM,\"method\":\"messages.tags\",\"params\":{\"action\":\"list\", \"messageIDs\": [$MESSAGENUM], \"folderID\":$SOURCENUM }}"
  108. foldernum "Inbox"; submit "{\"id\":$IDNUM,\"method\":\"messages.list\",\"params\":{\"folderID\":$FOLDERNUM }}"
  109. foldernum "Inbox"; submit "{\"id\":$IDNUM,\"method\":\"folders.tags\",\"params\":{\"context\":\"mail\",\"folderID\":$FOLDERNUM }}"
  110. submit "{\"id\":$IDNUM,\"method\":\"folders.add\",\"params\":{\"context\":\"mail\",\"name\":\"Mover\"}}"
  111. foldernum "Mover"; messagenums "Inbox" "1000"; submit "{\"id\":$IDNUM,\"method\":\"messages.move\",\"params\":{\"messageIDs\": [$MESSAGENUM], \"sourceFolderID\": $SOURCENUM, \"targetFolderID\":$FOLDERNUM }}"
  112. messagenums "Mover" "1000"; submit "{\"id\":$IDNUM,\"method\":\"messages.remove\",\"params\":{\"folderID\":$SOURCENUM,\"messageIDs\":[$MESSAGENUM]}}"
  113. foldernum "Mover"; submit "{\"id\":$IDNUM,\"method\":\"folders.remove\",\"params\":{\"context\":\"mail\",\"folderID\":$FOLDERNUM }}"
  114. # submit "{\"id\":$IDNUM,\"method\":\"messages.load\",\"params\":[{\"messageID\": 0, \"section\": [\"header, body, attachments\"]}, {\"messageID\": 0, \"section\": [\"info\"]}]}"
  115. # submit "{\"id\":$IDNUM,\"method\":\"messages.tags\",\"params\":{\"messageIDs\": [142, 154, 156], \"tag\": [\"javascript\", \"magma\"]}}"
  116. # submit "{\"id\":$IDNUM,\"method\":\"search\",\"params\":{\"searchin\": 0, \"queries\": [{ \"field\": \"from\", \"filter\": \"contains\", \"query\": \"Paul Grahm\" }, { \"field\": \"date\", \"range\": { \"from\": 23112342342, \"to\": 2342342343 } }]}}"
  117. # submit "{\"id\":$IDNUM,\"method\":\"scrape.add\",\"params\":{\"messageID\": 203, \"id\": 59, \"name\": \"John Doe\", \"email\": \"jdoe@example.com\"}}"
  118. # submit "{\"id\":$IDNUM,\"method\":\"scrape\",\"params\":{\"messageID\": 203}}"
  119. # submit "{\"id\":$IDNUM,\"method\":\"attachments.add\",\"params\":{\"composeID\": 45, \"filename\": \"script.js\"}}"
  120. # submit "{\"id\":$IDNUM,\"method\":\"attachments.progress\",\"params\":{\"attachmentID\": 34}}"
  121. # submit "{\"id\":$IDNUM,\"method\":\"attachments.remove\",\"params\":{\"attachmentID\": 34}}"
  122. # submit "{\"id\":$IDNUM,\"method\":\"contacts.edit\",\"params\":{\"contactID\": 58, \"name\": \"Tim Burns-Lee\", \"email\": \"tim@cern.org\"}}"
  123. # submit "{\"id\":$IDNUM,\"method\":\"contacts.list\",\"params\":{\"folderID\": 3}}"
  124. # submit "{\"id\":$IDNUM,\"method\":\"contacts.load\",\"params\":{\"contactID\": 88}}"
  125. # submit "{\"id\":$IDNUM,\"method\":\"contacts.remove\",\"params\":{\"contactID\": 88}}"
  126. # submit "{\"id\":$IDNUM,\"method\":\"ad\",\"params\":{\"context\":\"loading\"}}"
  127. submit "{\"id\":$IDNUM,\"method\":\"logout\"}"
  128. rm -f "$COOKIES"