Beispiel #1
0
    public static bool SetDirectoryText(MainWindow window, string text)
    {
        var filesPanelView   = ActiveFilePanelProvider.GetActiveFilePanelView(window);
        var directoryTextBox = filesPanelView
                               .GetVisualDescendants()
                               .OfType <TextBox>()
                               .SingleOrDefault(t => t.Name == "DirectoryTextBox");

        if (directoryTextBox is null)
        {
            return(false);
        }

        var separatorPosition = directoryTextBox.Text.LastIndexOf(Path.DirectorySeparatorChar);

        if (separatorPosition < 0)
        {
            return(false);
        }

        directoryTextBox.CaretIndex = directoryTextBox.Text.Length;
        var commonLength = directoryTextBox.Text.Length;

        while (!text.StartsWith(directoryTextBox.Text))
        {
            Keyboard.PressKey(window, Key.Back);
            commonLength--;
        }

        directoryTextBox.SendText(text[commonLength..]);
Beispiel #2
0
    public async Task TestSearch()
    {
        var window = AvaloniaApp.GetMainWindow();

        await FocusFilePanelStep.FocusFilePanelAsync(window);

        CreateNewTabStep.CreateNewTab(window);

        var viewModel = ActiveFilePanelProvider.GetActiveFilePanelViewModel(window);

        _directoryFullPath = Path.Combine(viewModel.CurrentDirectory, DirectoryName);
        Directory.CreateDirectory(_directoryFullPath);

        var filesPanel = ActiveFilePanelProvider.GetActiveFilePanelView(window);

        Assert.NotNull(filesPanel);

        ToggleSearchPanelStep.ToggleSearchPanelVisibility(window);

        await Task.Delay(100);

        var searchPanel = filesPanel
                          .GetVisualDescendants()
                          .OfType <SearchView>()
                          .SingleOrDefault();

        Assert.NotNull(searchPanel);

        var searchTextBox = searchPanel
                            .GetVisualDescendants()
                            .OfType <TextBox>()
                            .SingleOrDefault();

        Assert.NotNull(searchTextBox);

        searchTextBox.SendText(DirectoryName);

        await Task.Delay(1000);

        ChangeActiveFilePanelStep.ChangeActiveFilePanel(window);
        ChangeActiveFilePanelStep.ChangeActiveFilePanel(window);
        Keyboard.PressKey(window, Key.Down);
        Keyboard.PressKey(window, Key.Down);

        await Task.Delay(100);

        var selectedItemText = GetSelectedItemText(filesPanel);

        Assert.Equal(DirectoryName, selectedItemText);

        _fileFullPath = Path.Combine(viewModel.CurrentDirectory, FileName);
        await File.Create(_fileFullPath).DisposeAsync();

        await Task.Delay(1000);

        var fileIsVisible = CheckIfFilesExist(filesPanel);

        Assert.False(fileIsVisible);
    }
Beispiel #3
0
    public async Task TestRemoveDirectory(bool removePermanently)
    {
        var app    = AvaloniaApp.GetApp();
        var window = AvaloniaApp.GetMainWindow();

        await FocusFilePanelStep.FocusFilePanelAsync(window);

        var viewModel = ActiveFilePanelProvider.GetActiveFilePanelViewModel(window);

        _directoryFullPath = Path.Combine(viewModel.CurrentDirectory, DirectoryName);
        Directory.CreateDirectory(_directoryFullPath);

        ToggleSearchPanelStep.ToggleSearchPanelVisibility(window);

        await Task.Delay(100);

        var filesPanel = ActiveFilePanelProvider.GetActiveFilePanelView(window);

        Assert.NotNull(filesPanel);

        SearchNodeStep.SearchNode(window, DirectoryName);

        await Task.Delay(1000);

        ChangeActiveFilePanelStep.ChangeActiveFilePanel(window);
        ChangeActiveFilePanelStep.ChangeActiveFilePanel(window);
        Keyboard.PressKey(window, Key.Down);
        Keyboard.PressKey(window, Key.Down);

        if (removePermanently)
        {
            OpenRemoveDialogStep.OpenPermanentRemoveDialog(window);
        }
        else
        {
            OpenRemoveDialogStep.OpenRemoveDialog(window);
        }

        var isRemoveDialogOpened =
            await DialogOpenedCondition.CheckIfDialogIsOpenedAsync <RemoveNodesConfirmationDialog>(app);

        Assert.True(isRemoveDialogOpened);

        Keyboard.PressKey(window, Key.Enter);
        await Task.Delay(100);

        var isRemoveDialogClosed =
            await DialogClosedCondition.CheckIfDialogIsClosedAsync <RemoveNodesConfirmationDialog>(app);

        Assert.True(isRemoveDialogClosed);

        ToggleSearchPanelStep.ToggleSearchPanelVisibility(window);

        Assert.False(Directory.Exists(_directoryFullPath));
    }
Beispiel #4
0
    public static void SearchNode(MainWindow window, string text)
    {
        var filesPanel  = ActiveFilePanelProvider.GetActiveFilePanelView(window);
        var searchPanel = filesPanel
                          .GetVisualDescendants()
                          .OfType <SearchView>()
                          .Single();
        var searchTextBox = searchPanel
                            .GetVisualDescendants()
                            .OfType <TextBox>()
                            .Single();

        searchTextBox.SendText(text);
    }
Beispiel #5
0
        public async Task GoToParentDirectoryAndBackTest()
        {
            var window = AvaloniaApp.GetMainWindow();
            await FocusFilePanelStep.FocusFilePanelAsync(window);

            CreateNewTabStep.CreateNewTab(window);
            FocusDirectorySelectorStep.FocusDirectorySelector(window);

            var filesPanelViewModel = ActiveFilePanelProvider.GetActiveFilePanelViewModel(window);
            var currentDirectory    = filesPanelViewModel.CurrentDirectory;
            var filesPanelView      = ActiveFilePanelProvider.GetActiveFilePanelView(window);
            var directoryTextBox    = filesPanelView
                                      .GetVisualDescendants()
                                      .OfType <TextBox>()
                                      .SingleOrDefault(t => t.Name == "DirectoryTextBox");

            Assert.NotNull(directoryTextBox);

            var separatorPosition = directoryTextBox.Text.LastIndexOf(Path.DirectorySeparatorChar);

            Assert.True(separatorPosition >= 0);

            directoryTextBox.CaretIndex = directoryTextBox.Text.Length;
            var symbolsToRemoveCount = directoryTextBox.Text.Length - separatorPosition;

            for (var i = 0; i < symbolsToRemoveCount; i++)
            {
                Keyboard.PressKey(window, Key.Back);
            }

            await Task.Delay(5000);

            var isParentDirectoryOpened = await DirectoryOpenedCondition.CheckIfParentDirectoryIsOpenedAsync(window, currentDirectory);

            Assert.True(isParentDirectoryOpened);

            var directoryName = Path.GetFileNameWithoutExtension(currentDirectory);

            directoryTextBox.SendText(Path.DirectorySeparatorChar + directoryName);

            var childDirectoryWasOpened =
                await DirectoryOpenedCondition.CheckIfDirectoryIsOpenedAsync(window, currentDirectory);

            Assert.True(childDirectoryWasOpened);
        }
Beispiel #6
0
        public async Task CreateAndRemoveDirectoryTest()
        {
            var app    = AvaloniaApp.GetApp();
            var window = AvaloniaApp.GetMainWindow();

            await FocusFilePanelStep.FocusFilePanelAsync(window);

            OpenCreateDirectoryDialogStep.OpenCreateDirectoryDialog(window);
            var isDialogOpened = await DialogOpenedCondition.CheckIfDialogIsOpenedAsync <CreateDirectoryDialog>(app);

            Assert.True(isDialogOpened);

            CreateDirectoryStep.CreateDirectory(app, window, DirectoryName);

            var isDialogClosed = await DialogClosedCondition.CheckIfDialogIsClosedAsync <CreateDirectoryDialog>(app);

            Assert.True(isDialogClosed);

            var filesPanel = ActiveFilePanelProvider.GetActiveFilePanelView(window);

            Assert.NotNull(filesPanel);

            ToggleSearchPanelStep.ToggleSearchPanelVisibility(window);

            await Task.Delay(100);

            var searchPanel = filesPanel
                              .GetVisualDescendants()
                              .OfType <SearchView>()
                              .SingleOrDefault();

            Assert.NotNull(searchPanel);

            var searchTextBox = searchPanel
                                .GetVisualDescendants()
                                .OfType <TextBox>()
                                .SingleOrDefault();

            Assert.NotNull(searchTextBox);

            searchTextBox.SendText(DirectoryName);

            await Task.Delay(1000);

            Keyboard.PressKey(window, Key.Tab);
            Keyboard.PressKey(window, Key.Tab);
            Keyboard.PressKey(window, Key.Down);
            Keyboard.PressKey(window, Key.Down);

            await Task.Delay(100);

            var selectedItemText = GetSelectedItemText(filesPanel);

            Assert.Equal(DirectoryName, selectedItemText);

            OpenRemoveDialogStep.OpenRemoveDialog(window);
            var isRemoveDialogOpened =
                await DialogOpenedCondition.CheckIfDialogIsOpenedAsync <RemoveNodesConfirmationDialog>(app);

            Assert.True(isRemoveDialogOpened);

            Keyboard.PressKey(window, Key.Enter);
            await Task.Delay(100);

            var isRemoveDialogClosed =
                await DialogClosedCondition.CheckIfDialogIsClosedAsync <RemoveNodesConfirmationDialog>(app);

            Assert.True(isRemoveDialogClosed);

            Assert.False(Directory.Exists(_directoryFullPath));
        }