- // Copyright 2017 The Gitea Authors. All rights reserved.
- // Use of this source code is governed by a MIT-style
- // license that can be found in the LICENSE file.
-
- package integration
-
- import (
- "encoding/json"
- "fmt"
- "log"
- "net/http"
- "os"
- "os/exec"
- "path/filepath"
- "strings"
- "testing"
-
- "code.gitea.io/gitea/integrations/internal/utils"
- "code.gitea.io/sdk/gitea"
-
- "github.com/stretchr/testify/assert"
- )
-
- func version(t *utils.T) error {
- var err error
-
- path, err := filepath.Abs(t.Config.Program)
- if err != nil {
- return err
- }
-
- cmd := exec.Command(path, "--version")
- out, err := cmd.Output()
- if err != nil {
- return err
- }
-
- fields := strings.Fields(string(out))
- if !strings.HasPrefix(string(out), "Gitea version") {
- return fmt.Errorf("unexpected version string '%s' of the gitea executable", out)
- }
-
- expected := fields[2]
-
- var r *http.Response
- r, err = http.Get("http://:" + ServerHTTPPort + "/api/v1/version")
- if err != nil {
- return err
- }
- defer r.Body.Close()
-
- if r.StatusCode != http.StatusOK {
- return fmt.Errorf("'/api/v1/version': %s\n", r.Status)
- }
-
- var v gitea.ServerVersion
-
- dec := json.NewDecoder(r.Body)
- if err := dec.Decode(&v); err != nil {
- return err
- }
-
- actual := v.Version
-
- log.Printf("Actual: \"%s\" Expected: \"%s\"\n", actual, expected)
- assert.Equal(t, expected, actual)
-
- return nil
- }
-
- func TestVersion(t *testing.T) {
- conf := utils.Config{
- Program: "../gitea",
- WorkDir: "",
- Args: []string{"web", "--port", ServerHTTPPort},
- LogFile: os.Stderr,
- }
-
- if err := utils.New(t, &conf).RunTest(install, version); err != nil {
- t.Fatal(err)
- }
- }
|