Пример #1
0
        static Layout CreateTrackerFilter(TestCaseScreen testCaseScreen)
        {
            var trackerFilterLayout = new StackLayout
            {
                Orientation       = StackOrientation.Horizontal,
                HorizontalOptions = LayoutOptions.Fill
            };

            var bzSwitch = new Switch {
                IsToggled = true
            };

            trackerFilterLayout.Children.Add(new Label {
                Text = "Bugzilla"
            });
            trackerFilterLayout.Children.Add(bzSwitch);
            bzSwitch.Toggled += (sender, args) => testCaseScreen.FilterTracker(IssueTracker.Bugzilla);

            var ghSwitch = new Switch {
                IsToggled = true
            };

            trackerFilterLayout.Children.Add(new Label {
                Text = "GitHub"
            });
            trackerFilterLayout.Children.Add(ghSwitch);
            ghSwitch.Toggled += (sender, args) => testCaseScreen.FilterTracker(IssueTracker.Github);

            var noneSwitch = new Switch {
                IsToggled = true
            };

            trackerFilterLayout.Children.Add(new Label {
                Text = "None"
            });
            trackerFilterLayout.Children.Add(noneSwitch);
            noneSwitch.Toggled += (sender, args) => testCaseScreen.FilterTracker(IssueTracker.None);

            return(trackerFilterLayout);
        }
Пример #2
0
        static void SearchBarOnTextChanged(object sender, TextChangedEventArgs textChangedEventArgs, TestCaseScreen cases)
        {
            var filter = textChangedEventArgs.NewTextValue;

            if (String.IsNullOrEmpty(filter))
            {
                return;
            }

            cases.FilterIssues(filter);
        }
Пример #3
0
        public static NavigationPage GetTestCases()
        {
            TestCaseScreen testCaseScreen = null;
            var            rootLayout     = new StackLayout();

            var testCasesRoot = new ContentPage
            {
                Title   = "Bug Repro's",
                Content = rootLayout
            };

            var searchBar = new SearchBar()
            {
                MinimumHeightRequest = 42,                 // Need this for Android N, see https://bugzilla.xamarin.com/show_bug.cgi?id=43975
                AutomationId         = "SearchBarGo"
            };

            var searchButton = new Button()
            {
                Text         = "Search And Go To Issue",
                AutomationId = "SearchButton",
                Command      = new Command(() =>
                {
                    try
                    {
                        if (TestCaseScreen.PageToAction.ContainsKey(searchBar.Text?.Trim()))
                        {
                            TestCaseScreen.PageToAction[searchBar.Text?.Trim()]();
                        }
                        else if (!testCaseScreen.TryToNavigateTo(searchBar.Text?.Trim()))
                        {
                            throw new Exception($"Unable to Navigate to {searchBar.Text}");
                        }
                    }
                    catch (Exception e)
                    {
                        System.Diagnostics.Debug.WriteLine(e.Message);
                        Console.WriteLine(e.Message);
                    }
                })
            };

            var leaveTestCasesButton = new Button
            {
                AutomationId = "GoBackToGalleriesButton",
                Text         = "Go Back to Galleries",
                Command      = new Command(() => testCasesRoot.Navigation.PopModalAsync())
            };

            rootLayout.Children.Add(leaveTestCasesButton);
            rootLayout.Children.Add(searchBar);
            rootLayout.Children.Add(searchButton);

            testCaseScreen = new TestCaseScreen();

            rootLayout.Children.Add(CreateTrackerFilter(testCaseScreen));

            rootLayout.Children.Add(testCaseScreen);

            searchBar.TextChanged += (sender, args) => SearchBarOnTextChanged(sender, args, testCaseScreen);

            var page = new NavigationPage(testCasesRoot);

            switch (Device.RuntimePlatform)
            {
            case Device.iOS:
            case Device.Android:
            default:
                page.Title = "Test Cases";
                break;

            case Device.UWP:
                page.Title = "Tests";
                break;
            }
            return(page);
        }