<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def browse(self):
        ''' Browse the history of a single file
        adds one commit that doesn't contain changes in test_file_1.
        there are four commits in summary, so the check for buffer line
        count compares with 3.
        at the end, a fifth commit must be present due to resetting the
        file contents.
        '''
        check = self._check
        marker_text = Random.string()
        self.vim.buffer.set_content([marker_text])
        self._save()
        self._write_file(1)
        self._save()
        self._write_file2(1)
        self._save()
        self._write_file(2)
        self._write_file2(1)
        self._save()
        self.vim.cmd('ProHistoryFileBrowse {}'.format('test_file_1'))
        check(0, '*')
        self.vim.vim.feedkeys('j')
        self.vim.vim.feedkeys('j')
        later(lambda: self.vim.buffer.content.length.should.equal(3))
        self.vim.vim.feedkeys('s')
        self._await_commit(0)
        self.vim.buffer.content.should.equal(List(marker_text))