summaryrefslogtreecommitdiffstats
path: root/modules/indexer/issues/bleve_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'modules/indexer/issues/bleve_test.go')
-rw-r--r--modules/indexer/issues/bleve_test.go88
1 files changed, 88 insertions, 0 deletions
diff --git a/modules/indexer/issues/bleve_test.go b/modules/indexer/issues/bleve_test.go
new file mode 100644
index 0000000000..720266e3b5
--- /dev/null
+++ b/modules/indexer/issues/bleve_test.go
@@ -0,0 +1,88 @@
+// Copyright 2018 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 issues
+
+import (
+ "os"
+ "testing"
+
+ "github.com/stretchr/testify/assert"
+)
+
+func TestIndexAndSearch(t *testing.T) {
+ dir := "./bleve.index"
+ indexer := NewBleveIndexer(dir)
+ defer os.RemoveAll(dir)
+
+ _, err := indexer.Init()
+ assert.NoError(t, err)
+
+ err = indexer.Index([]*IndexerData{
+ {
+ ID: 1,
+ RepoID: 2,
+ Title: "Issue search should support Chinese",
+ Content: "As title",
+ Comments: []string{
+ "test1",
+ "test2",
+ },
+ },
+ {
+ ID: 2,
+ RepoID: 2,
+ Title: "CJK support could be optional",
+ Content: "Chinese Korean and Japanese should be supported but I would like it's not enabled by default",
+ Comments: []string{
+ "LGTM",
+ "Good idea",
+ },
+ },
+ })
+ assert.NoError(t, err)
+
+ var (
+ keywords = []struct {
+ Keyword string
+ IDs []int64
+ }{
+ {
+ Keyword: "search",
+ IDs: []int64{1},
+ },
+ {
+ Keyword: "test1",
+ IDs: []int64{1},
+ },
+ {
+ Keyword: "test2",
+ IDs: []int64{1},
+ },
+ {
+ Keyword: "support",
+ IDs: []int64{1, 2},
+ },
+ {
+ Keyword: "chinese",
+ IDs: []int64{1, 2},
+ },
+ {
+ Keyword: "help",
+ IDs: []int64{},
+ },
+ }
+ )
+
+ for _, kw := range keywords {
+ res, err := indexer.Search(kw.Keyword, 2, 10, 0)
+ assert.NoError(t, err)
+
+ var ids = make([]int64, 0, len(res.Hits))
+ for _, hit := range res.Hits {
+ ids = append(ids, hit.ID)
+ }
+ assert.EqualValues(t, kw.IDs, ids)
+ }
+}