コード例 #1
0
        public void TestGUI()
        {
            Form form = new Form();

            form.Size = new Size(600, 800);

            SessionData session = new SessionData
            {
                Username = ScpConfig.UserName,
                Password = ScpConfig.Password,
                Host     = ScpConfig.KnownHost,
                Port     = 22
            };

            BrowserPresenter presenter = new BrowserPresenter(
                "Remote",
                new RemoteBrowserModel(ScpConfig.DefaultOptions),
                session,
                new MockFileTransferPresenter());

            BrowserView view = new BrowserView(
                presenter,
                RemoteBrowserModel.NewDirectory("/home/" + ScpConfig.UserName));

            view.Dock = DockStyle.Fill;

            form.Controls.Add(view);
            form.ShowDialog();
        }
コード例 #2
0
        public void InvokeGoHome()
        {
            var view      = new MockBrowserView();
            var history   = new MockHistory();
            var favorites = new MockFavorites();
            var config    = new MockConfig();
            var presenter = new BrowserPresenter <MockTabPresenter>(
                view,
                history,
                favorites,
                config,
                new MockFaviconCache(),
                (tab, f, c, favicons, h, tabHistory) => new MockTabPresenter(tab, f, c, favicons, h, tabHistory));

            var url  = Url.FromString("www.myfavorite.com");
            var url2 = Url.FromString("www.myfavorite2.com");

            favorites.GetOrCreate(url);
            favorites.GetOrCreate(url2);
            view.InvokeFavoritesListOpen(0);
            view.InvokeFavoritesListOpen(1);

            view.InvokeFavoritesListOpen(0);

            Assert.AreEqual(history.GetViewModel()[history.GetViewModel().Count - 1].GetUrl(), url);

            view.InvokeGoHome();

            Assert.AreEqual(history.GetViewModel()[history.GetViewModel().Count - 1].GetUrl(), config.Home);
        }
コード例 #3
0
        public void InvokeNewIncognitoTab()
        {
            var history   = new MockHistory();
            var favorites = new MockFavorites();
            var view      = new MockBrowserView();
            var presenter = new BrowserPresenter <MockTabPresenter>(
                view,
                history,
                favorites,
                new MockConfig(),
                new MockFaviconCache(),
                (tab, f, c, favicons, h, tabHistory) => new MockTabPresenter(tab, f, c, favicons, h, tabHistory));

            var url  = Url.FromString("www.myfavorite.com");
            var url2 = Url.FromString("www.myfavorite2.com");

            favorites.GetOrCreate(url);
            favorites.GetOrCreate(url2);
            view.InvokeFavoritesListOpen(0);
            view.InvokeFavoritesListOpen(1);

            // open and switch to an incognito tab
            view.InvokeNewIncognitoTab();

            var list = history.GetViewModel().Count;

            view.InvokeFavoritesListOpen(0);
            Assert.AreEqual(list, history.GetViewModel().Count);
        }
コード例 #4
0
 public BrowserView(string title = "开始")
 {
     InitializeComponent();
     TabText            = title;
     CloseButtonVisible = false;
     presenter          = new BrowserPresenter(this);
 }
コード例 #5
0
        //
        internal FormBrowser()
        {
            //this.DoubleBuffered = true;
            InitializeComponent();

            // can callback from js <a href="whatever" onclick="window.external.JSTest('called from script code')">CLICK ME</a>
            // class need to be public
            webBrowser.ObjectForScripting = this;

            BrowserPresenter.Ini(this);
        }
コード例 #6
0
        public void LocalListFiles()
        {
            BrowserPresenter  presenter = new BrowserPresenter("Local", new LocalBrowserModel(), null, new MockFileTransferPresenter());
            IBrowserViewModel viewModel = presenter.ViewModel;

            // make mock dir
            String testDir = Path.Combine(Path.GetTempPath(), Path.GetTempFileName());

            File.Delete(testDir);
            Directory.CreateDirectory(Path.Combine(testDir, "A"));
            Directory.CreateDirectory(Path.Combine(testDir, "B"));
            Directory.CreateDirectory(Path.Combine(testDir, "C"));
            File.WriteAllText(Path.Combine(testDir, "file1"), "");
            File.WriteAllText(Path.Combine(testDir, "file2"), "");
            File.WriteAllText(Path.Combine(testDir, "file3"), "");
            File.WriteAllText(Path.Combine(testDir, "file4"), "1");

            // change to mode dir
            presenter.ViewModel.PropertyChanged += (s, e) =>
            {
                if (presenter.ViewModel.BrowserState == BrowserState.Ready)
                {
                    lock (this) { Monitor.Pulse(this); }
                }
            };
            presenter.LoadDirectory(new BrowserFileInfo(new DirectoryInfo(testDir)));
            lock (this)
            {
                Monitor.Wait(this, 1000);
            }

            foreach (BrowserFileInfo bfi in presenter.ViewModel.Files)
            {
                Log.InfoFormat("BFI: {0}", bfi);
            }
            Assert.IsNotNull(viewModel.Files);
            Assert.AreEqual(8, viewModel.Files.Count);
            Assert.AreEqual("..", viewModel.Files[0].Name);
            Assert.AreEqual(new DirectoryInfo(Path.GetTempPath()), new DirectoryInfo(viewModel.Files[0].Path));
            Assert.AreEqual(FileType.ParentDirectory, viewModel.Files[0].Type);
            Assert.AreEqual("A", viewModel.Files[1].Name);
            Assert.AreEqual(FileType.Directory, viewModel.Files[1].Type);
            Assert.AreEqual(0, viewModel.Files[1].Size);

            Assert.AreEqual("file1", viewModel.Files[4].Name, "file1");
            Assert.AreEqual(FileType.File, viewModel.Files[4].Type);
            Assert.AreEqual(0, viewModel.Files[4].Size);

            Assert.AreEqual(1, viewModel.Files[7].Size);
        }
コード例 #7
0
        public void InvokeFavoritesListEdit()
        {
            var view      = new MockBrowserView();
            var presenter = new BrowserPresenter <MockTabPresenter>(
                view,
                new MockHistory(),
                new MockFavorites(),
                new MockConfig(),
                new MockFaviconCache(),
                (tab, favorites, config, favicons, history, tabHistory) => new MockTabPresenter(tab, favorites, config, favicons, history, tabHistory));

            // TODO finish
            Assert.Fail();
        }
コード例 #8
0
        public void InvokeCloseWindow()
        {
            var view      = new MockBrowserView();
            var presenter = new BrowserPresenter <MockTabPresenter>(
                view,
                new MockHistory(),
                new MockFavorites(),
                new MockConfig(),
                new MockFaviconCache(),
                (tab, favorites, config, favicons, history, tabHistory) => new MockTabPresenter(tab, favorites, config, favicons, history, tabHistory));

            view.InvokeCloseWindow();
            Assert.IsTrue(view.IsClosed);
        }
コード例 #9
0
        public void TestGUI()
        {
            BrowserPresenter presenter = new BrowserPresenter(
                "Local", new LocalBrowserModel(), new SessionData(), new MockFileTransferPresenter());

            string      dir  = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
            BrowserView view = new BrowserView(presenter, new BrowserFileInfo(new DirectoryInfo(dir)));

            view.Dock = DockStyle.Fill;

            Form form = new Form();

            form.Size = new Size(600, 800);
            form.Controls.Add(view);
            form.ShowDialog();
        }
コード例 #10
0
        public void InvokeTabChanged()
        {
            var view      = new MockBrowserView();
            var presenter = new BrowserPresenter <MockTabPresenter>(
                view,
                new MockHistory(),
                new MockFavorites(),
                new MockConfig(),
                new MockFaviconCache(),
                (tab, favorites, config, favicons, history, tabHistory) => new MockTabPresenter(tab, favorites, config, favicons, history, tabHistory));

            view.InvokeNewTab();
            var currentTab = view.SelectedTab;

            view.InvokeTabChanged(0);
            Assert.AreNotEqual(currentTab, view.SelectedTab);
        }
コード例 #11
0
        public void InvokeCloseTab()
        {
            var view      = new MockBrowserView();
            var presenter = new BrowserPresenter <MockTabPresenter>(
                view,
                new MockHistory(),
                new MockFavorites(),
                new MockConfig(),
                new MockFaviconCache(),
                (tab, favorites, config, favicons, history, tabHistory) => new MockTabPresenter(tab, favorites, config, favicons, history, tabHistory));

            view.InvokeNewTab();
            var first = view.SelectedTab;

            view.InvokeNewTab();
            var second = view.SelectedTab;

            view.InvokeCloseTab();
            Assert.AreEqual(view.SelectedTab, first);
        }
コード例 #12
0
        public void InvokeHistoryListSave()
        {
            var view      = new MockBrowserView();
            var history   = new MockHistory();
            var config    = new MockConfig();
            var presenter = new BrowserPresenter <MockTabPresenter>(
                view,
                history,
                new MockFavorites(),
                config,
                new MockFaviconCache(),
                (tab, favorites, c, favicons, h, tabHistory) => new MockTabPresenter(tab, favorites, c, favicons, h, tabHistory));

            // save mock.com to favorites
            view.InvokeHistoryListSave(0);

            // open mock.com from favorites
            view.InvokeFavoritesListOpen(0);

            Assert.AreEqual(config.Home, history.GetViewModel()[history.GetViewModel().Count - 1].GetUrl());
        }
コード例 #13
0
        public void InvokeFavoritesListOpen()
        {
            var config    = new MockConfig();
            var favorites = new MockFavorites();
            var view      = new MockBrowserView();
            var presenter = new BrowserPresenter <MockTabPresenter>(
                view,
                new MockHistory(),
                favorites,
                config,
                new MockFaviconCache(),
                (tab, f, c, favicons, history, tabHistory) => new MockTabPresenter(tab, f, c, favicons, history, tabHistory));

            favorites.GetOrCreate(Url.FromString("www.myfavorite.com"));
            view.InvokeFavoritesListOpen(0);

            // easiest way to check if the url has changed
            var oldHome = config.Home;

            view.InvokeHomeChanged();
            Assert.AreNotEqual(oldHome, config.Home);
        }
コード例 #14
0
        public void InvokeHistoryListOpen()
        {
            var config    = new MockConfig();
            var favorites = new MockFavorites();
            var view      = new MockBrowserView();
            var presenter = new BrowserPresenter <MockTabPresenter>(
                view,
                new MockHistory(),
                favorites,
                config,
                new MockFaviconCache(),
                (tab, f, c, favicons, history, tabHistory) => new MockTabPresenter(tab, f, c, favicons, history, tabHistory));

            var url  = Url.FromString("www.myfavorite.com");
            var url2 = Url.FromString("www.myfavorite2.com");

            favorites.GetOrCreate(url);
            favorites.GetOrCreate(url2);
            view.InvokeFavoritesListOpen(0);
            view.InvokeFavoritesListOpen(1);

            // 0 - mock.com
            // 1 - url
            // 2 - url2

            view.InvokeHistoryListOpen(1);

            // easiest way to check if the url has changed
            view.InvokeHomeChanged();
            Assert.AreEqual(url, config.Home);

            view.InvokeHistoryListOpen(2);

            // easiest way to check if the url has changed
            view.InvokeHomeChanged();
            Assert.AreEqual(url2, config.Home);
        }