+++ /dev/null
-// Copyright 2020 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package fake
-
-import (
- "context"
- "testing"
-)
-
-func TestContentPosition(t *testing.T) {
- content := "foo\nš\nbar"
- tests := []struct {
- offset, wantLine, wantColumn int
- }{
- {0, 0, 0},
- {3, 0, 3},
- {4, 1, 0},
- {5, 1, 1},
- {6, 2, 0},
- }
- for _, test := range tests {
- pos, err := contentPosition(content, test.offset)
- if err != nil {
- t.Fatal(err)
- }
- if pos.Line != test.wantLine {
- t.Errorf("contentPosition(%q, %d): Line = %d, want %d", content, test.offset, pos.Line, test.wantLine)
- }
- if pos.Column != test.wantColumn {
- t.Errorf("contentPosition(%q, %d): Column = %d, want %d", content, test.offset, pos.Column, test.wantColumn)
- }
- }
-}
-
-const exampleProgram = `
--- go.mod --
-go 1.12
--- main.go --
-package main
-
-import "fmt"
-
-func main() {
- fmt.Println("Hello World.")
-}
-`
-
-func TestClientEditing(t *testing.T) {
- ws, err := NewSandbox(&SandboxConfig{Files: exampleProgram})
- if err != nil {
- t.Fatal(err)
- }
- defer ws.Close()
- ctx := context.Background()
- editor := NewEditor(ws, EditorConfig{})
- if err := editor.OpenFile(ctx, "main.go"); err != nil {
- t.Fatal(err)
- }
- if err := editor.EditBuffer(ctx, "main.go", []Edit{
- {
- Start: Pos{5, 14},
- End: Pos{5, 26},
- Text: "Hola, mundo.",
- },
- }); err != nil {
- t.Fatal(err)
- }
- got := editor.buffers["main.go"].text()
- want := `package main
-
-import "fmt"
-
-func main() {
- fmt.Println("Hola, mundo.")
-}
-`
- if got != want {
- t.Errorf("got text %q, want %q", got, want)
- }
-}