35 lines
777 B
Go
35 lines
777 B
Go
|
package suites
|
||
|
|
||
|
import (
|
||
|
"encoding/json"
|
||
|
"fmt"
|
||
|
"log"
|
||
|
"regexp"
|
||
|
|
||
|
"github.com/stretchr/testify/assert"
|
||
|
)
|
||
|
|
||
|
type message struct {
|
||
|
ID int `json:"id"`
|
||
|
}
|
||
|
|
||
|
func doGetLinkFromLastMail(s *SeleniumSuite) string {
|
||
|
res := doHTTPGetQuery(s, fmt.Sprintf("%s/messages", MailBaseURL))
|
||
|
messages := make([]message, 0)
|
||
|
err := json.Unmarshal(res, &messages)
|
||
|
assert.NoError(s.T(), err)
|
||
|
assert.Greater(s.T(), len(messages), 0)
|
||
|
|
||
|
messageID := messages[len(messages)-1].ID
|
||
|
|
||
|
res = doHTTPGetQuery(s, fmt.Sprintf("%s/messages/%d.html", MailBaseURL, messageID))
|
||
|
|
||
|
re := regexp.MustCompile(`<a href="(.+)" class="button">.*<\/a>`)
|
||
|
matches := re.FindStringSubmatch(string(res))
|
||
|
|
||
|
if len(matches) != 2 {
|
||
|
log.Fatal("Number of match for link in email is not equal to one")
|
||
|
}
|
||
|
return matches[1]
|
||
|
}
|