aboutsummaryrefslogtreecommitdiff
path: root/test/functional/plugin/tutor_spec.lua
blob: bd214e9c03e577a3bfd6f4a4555c27c288e50f79 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
local Screen = require('test.functional.ui.screen')
local helpers = require('test.functional.helpers')(after_each)
local clear = helpers.clear
local command = helpers.command
local feed = helpers.feed
local is_os = helpers.is_os

describe(':Tutor', function()
  local screen

  before_each(function()
    clear({ args = { '--clean' } })
    command('set cmdheight=0')
    command('Tutor')
    screen = Screen.new(80, 30)
    screen:set_default_attr_ids({
      [0] = { foreground = Screen.colors.DarkBlue, background = Screen.colors.Gray },
      [1] = { bold = true },
      [2] = { underline = true, foreground = tonumber('0x0088ff') },
      [3] = { foreground = Screen.colors.SlateBlue },
      [4] = { bold = true, foreground = Screen.colors.Brown },
      [5] = { bold = true, foreground = Screen.colors.Magenta1 },
    })
    screen:attach()
  end)

  it('applies {unix:…,win:…} transform', function()
    local expected = is_os('win') and [[
      {0:  }^                                                                              |
      {0:  } 3. To verify that a file was retrieved, cursor back and notice that there    |
      {0:  }    are now two copies of Lesson 5.3, the original and the retrieved version. |
      {0:  }                                                                              |
      {0:  }{1:NOTE}: You can also read the output of an external command. For example,       |
      {0:  }                                                                              |
      {0:  }        :r {4:!}dir                                                               |
      {0:  }                                                                              |
      {0:  }      reads the output of the ls command and puts it below the cursor.        |
      {0:  }                                                                              |
      {0:  }{3:#}{5: Lesson 5 SUMMARY}                                                            |
      {0:  }                                                                              |
      {0:  } 1. {2::!command} executes an external command.                                   |
      {0:  }                                                                              |
      {0:  }     Some useful examples are:                                                |
      {0:  }     :{4:!}dir                   - shows a directory listing                      |
      {0:  }     :{4:!}del FILENAME          - removes file FILENAME                          |
      {0:  }                                                                              |
      {0:  } 2. {2::w} FILENAME              writes the current Neovim file to disk with      |
      {0:  }                             name FILENAME.                                   |
      {0:  }                                                                              |
      {0:  } 3. {2:v}  motion  :w FILENAME   saves the Visually selected lines in file        |
      {0:  }                             FILENAME.                                        |
      {0:  }                                                                              |
      {0:  } 4. {2::r} FILENAME              retrieves disk file FILENAME and puts it         |
      {0:  }                             below the cursor position.                       |
      {0:  }                                                                              |
      {0:  } 5. {2::r !dir}                  reads the output of the dir command and          |
      {0:  }                             puts it below the cursor position.               |
      {0:  }                                                                              |
    ]] or [[
      {0:  }^                                                                              |
      {0:  } 3. To verify that a file was retrieved, cursor back and notice that there    |
      {0:  }    are now two copies of Lesson 5.3, the original and the retrieved version. |
      {0:  }                                                                              |
      {0:  }{1:NOTE}: You can also read the output of an external command. For example,       |
      {0:  }                                                                              |
      {0:  }        :r {4:!}ls                                                                |
      {0:  }                                                                              |
      {0:  }      reads the output of the ls command and puts it below the cursor.        |
      {0:  }                                                                              |
      {0:  }{3:#}{5: Lesson 5 SUMMARY}                                                            |
      {0:  }                                                                              |
      {0:  } 1. {2::!command} executes an external command.                                   |
      {0:  }                                                                              |
      {0:  }     Some useful examples are:                                                |
      {0:  }     :{4:!}ls                    - shows a directory listing                      |
      {0:  }     :{4:!}rm  FILENAME          - removes file FILENAME                          |
      {0:  }                                                                              |
      {0:  } 2. {2::w} FILENAME              writes the current Neovim file to disk with      |
      {0:  }                             name FILENAME.                                   |
      {0:  }                                                                              |
      {0:  } 3. {2:v}  motion  :w FILENAME   saves the Visually selected lines in file        |
      {0:  }                             FILENAME.                                        |
      {0:  }                                                                              |
      {0:  } 4. {2::r} FILENAME              retrieves disk file FILENAME and puts it         |
      {0:  }                             below the cursor position.                       |
      {0:  }                                                                              |
      {0:  } 5. {2::r !ls}                   reads the output of the ls command and           |
      {0:  }                             puts it below the cursor position.               |
      {0:  }                                                                              |
    ]]

    feed(':700<CR>zt')
    screen:expect(expected)
  end)
end)