Esempio n. 1
0
 public void TestMainMenuHelp()
 {
     using (Application installerEditor = Application.Launch(InstallerEditorExeUtils.Executable))
     {
         Window mainWindow   = installerEditor.GetWindow("Installer Editor", InitializeOption.NoCache);
         Menu   mainMenuHelp = UIAutomation.Find <MenuBar>(mainWindow, "Application").MenuItem("Help");
         mainMenuHelp.Click();
         Assert.IsTrue(mainMenuHelp.ChildMenus.Find("Users Guide").Enabled);
         Assert.IsTrue(mainMenuHelp.ChildMenus.Find("Home Page").Enabled);
         Assert.IsTrue(mainMenuHelp.ChildMenus.Find("About").Enabled);
     }
 }
Esempio n. 2
0
 public void DumpControls()
 {
     InstallerEditorExeUtils.RunOptions options = new InstallerEditorExeUtils.RunOptions();
     using (Process p = InstallerEditorExeUtils.Detach(options))
     {
         Thread.Sleep(2000);
         p.WaitForInputIdle();
         UIAutomation.DumpControl(AutomationElement.FromHandle(p.MainWindowHandle));
         p.CloseMainWindow();
         p.WaitForExit();
     }
 }
Esempio n. 3
0
 public void TestMainMenuEdit()
 {
     using (Application installerEditor = Application.Launch(InstallerEditorExeUtils.Executable))
     {
         Window mainWindow   = installerEditor.GetWindow("Installer Editor", InitializeOption.NoCache);
         Menu   mainMenuEdit = UIAutomation.Find <MenuBar>(mainWindow, "Application").MenuItem("Edit");
         mainMenuEdit.Click();
         Assert.IsFalse(mainMenuEdit.ChildMenus.Find("Add").Enabled);
         Assert.IsFalse(mainMenuEdit.ChildMenus.Find("Move").Enabled);
         Assert.IsFalse(mainMenuEdit.ChildMenus.Find("Expand All").Enabled);
         Assert.IsFalse(mainMenuEdit.ChildMenus.Find("Collapse All").Enabled);
         Assert.IsFalse(mainMenuEdit.ChildMenus.Find("Delete").Enabled);
     }
 }
Esempio n. 4
0
 public void TestMainMenu()
 {
     using (Application installerEditor = Application.Launch(InstallerEditorExeUtils.Executable))
     {
         Window mainWindow = installerEditor.GetWindow("Installer Editor", InitializeOption.NoCache);
         Menus  mainMenu   = UIAutomation.Find <MenuBar>(mainWindow, "Application").TopLevelMenu;
         Assert.AreEqual(5, mainMenu.Count);
         Assert.AreEqual("File", mainMenu[0].Name);
         Assert.AreEqual("Edit", mainMenu[1].Name);
         Assert.AreEqual("View", mainMenu[2].Name);
         Assert.AreEqual("Tools", mainMenu[3].Name);
         Assert.AreEqual("Help", mainMenu[4].Name);
     }
 }
Esempio n. 5
0
 public void TestAddSetupConfigurationLicenseAgreement()
 {
     using (Application installerEditor = Application.Launch(InstallerEditorExeUtils.Executable))
     {
         Window mainWindow = installerEditor.GetWindow("Installer Editor", InitializeOption.NoCache);
         UIAutomation.Find <MenuBar>(mainWindow, "Application").MenuItem("File", "New").Click();
         Tree configurationTree = UIAutomation.Find <Tree>(mainWindow, "configurationTree");
         Assert.AreEqual(1, configurationTree.Nodes.Count);
         UIAutomation.Find <MenuBar>(mainWindow, "Application").MenuItem("Edit", "Add", "Configurations", "Setup Configuration").Click();
         TreeNode configurationNode = configurationTree.SelectedNode;
         UIAutomation.Find <MenuBar>(mainWindow, "Application").MenuItem("Edit", "Add", "Controls", "License Agreement").Click();
         Assert.AreEqual("I have read and ...", configurationTree.SelectedNode.Name);
     }
 }
Esempio n. 6
0
 public void TestAddDownloadDialog()
 {
     using (Application installerEditor = Application.Launch(InstallerEditorExeUtils.Executable))
     {
         Window mainWindow = installerEditor.GetWindow("Installer Editor", InitializeOption.NoCache);
         UIAutomation.Find <MenuBar>(mainWindow, "Application").MenuItem("File", "New").Click();
         UIAutomation.Find <MenuBar>(mainWindow, "Application").MenuItem("Edit", "Add", "Configurations", "Setup Configuration").Click();
         UIAutomation.Find <MenuBar>(mainWindow, "Application").MenuItem("Edit", "Add", "Components", "Msi Component").Click();
         UIAutomation.Find <MenuBar>(mainWindow, "Application").MenuItem("Edit", "Add", "Download", "Download Dialog").Click();
         UIAutomation.Find <MenuBar>(mainWindow, "Application").MenuItem("Edit", "Add", "Download", "Download File").Click();
         Tree configurationTree = UIAutomation.Find <Tree>(mainWindow, "configurationTree");
         Assert.AreEqual("Download File", configurationTree.SelectedNode.Name);
     }
 }
Esempio n. 7
0
 public void TestMoveUpMoveDownConfiguration()
 {
     using (Application installerEditor = Application.Launch(InstallerEditorExeUtils.Executable))
     {
         Window mainWindow = installerEditor.GetWindow("Installer Editor", InitializeOption.NoCache);
         UIAutomation.Find <MenuBar>(mainWindow, "Application").MenuItem("File", "New").Click();
         Tree     configurationTree = mainWindow.Get <Tree>("configurationTree");
         TreeNode configFileNode    = configurationTree.SelectedNode;
         UIAutomation.Find <MenuBar>(mainWindow, "Application").MenuItem("Edit", "Add", "Configurations", "Setup Configuration").Click();
         configFileNode.Select();
         UIAutomation.Find <MenuBar>(mainWindow, "Application").MenuItem("Edit", "Add", "Configurations", "Web Configuration").Click();
         UIAutomation.Find <MenuBar>(mainWindow, "Application").MenuItem("Edit", "Move", "Up").Click();
         UIAutomation.Find <MenuBar>(mainWindow, "Application").MenuItem("Edit", "Move", "Down").Click();
     }
 }
Esempio n. 8
0
 public void TestMainMenuFile()
 {
     using (Application installerEditor = Application.Launch(InstallerEditorExeUtils.Executable))
     {
         Window mainWindow   = installerEditor.GetWindow("Installer Editor", InitializeOption.NoCache);
         Menu   mainMenuFile = UIAutomation.Find <MenuBar>(mainWindow, "Application").MenuItem("File");
         mainMenuFile.Click();
         Assert.IsTrue(mainMenuFile.ChildMenus.Find("New").Enabled);
         Assert.IsTrue(mainMenuFile.ChildMenus.Find("Open...").Enabled);
         Assert.IsFalse(mainMenuFile.ChildMenus.Find("Close").Enabled);
         Assert.IsFalse(mainMenuFile.ChildMenus.Find("Save").Enabled);
         Assert.IsFalse(mainMenuFile.ChildMenus.Find("Save As...").Enabled);
         Assert.IsFalse(mainMenuFile.ChildMenus.Find("Close").Enabled);
         Assert.IsFalse(mainMenuFile.ChildMenus.Find("Edit With Notepad").Enabled);
         Assert.IsFalse(mainMenuFile.ChildMenus.Find("Create Exe...").Enabled);
         Assert.IsTrue(mainMenuFile.ChildMenus.Find("Exit").Enabled);
     }
 }
Esempio n. 9
0
 public void TestRefresh()
 {
     using (Application installerEditor = Application.Launch(InstallerEditorExeUtils.Executable))
     {
         Window mainWindow = installerEditor.GetWindow("Installer Editor", InitializeOption.NoCache);
         UIAutomation.Find <MenuBar>(mainWindow, "Application").MenuItem("File", "New").Click();
         Tree     configurationTree = mainWindow.Get <Tree>("configurationTree");
         TreeNode configFileNode    = configurationTree.SelectedNode;
         UIAutomation.Find <MenuBar>(mainWindow, "Application").MenuItem("Edit", "Add", "Configurations", "Setup Configuration").Click();
         configFileNode.Select();
         UIAutomation.Find <MenuBar>(mainWindow, "Application").MenuItem("Edit", "Add", "Configurations", "Web Configuration").Click();
         configFileNode.Select();
         configFileNode.Collapse();
         UIAutomation.Find <MenuBar>(mainWindow, "Application").MenuItem("View", "Refresh").Click();
         configFileNode = configurationTree.SelectedNode;
         Assert.IsTrue(configFileNode.IsExpanded());
     }
 }
Esempio n. 10
0
 public void TestNewConfiguration()
 {
     using (Application installerEditor = Application.Launch(InstallerEditorExeUtils.Executable))
     {
         Window mainWindow = installerEditor.GetWindow("Installer Editor", InitializeOption.NoCache);
         UIAutomation.Find <MenuBar>(mainWindow, "Application").TopLevelMenu.Find("File").Click();
         UIAutomation.Find <MenuBar>(mainWindow, "Application").TopLevelMenu.Find("File").ChildMenus.Find("New").Click();
         // status says "Ready"
         StatusStrip    statusStrip = UIAutomation.Find <StatusStrip>(mainWindow, "statusStrip");
         WinFormTextBox statusLabel = (WinFormTextBox)statusStrip.Items[0];
         Assert.AreEqual("Ready", statusLabel.Text);
         // configuration tree has one node
         Tree configurationTree = UIAutomation.Find <Tree>(mainWindow, "configurationTree");
         Assert.AreEqual(1, configurationTree.Nodes.Count);
         Assert.AreEqual(0, configurationTree.SelectedNode.Nodes.Count);
         Assert.AreEqual("Config File", configurationTree.SelectedNode.Text);
     }
 }
Esempio n. 11
0
 public void TestAddSetupConfigurationControls()
 {
     using (Application installerEditor = Application.Launch(InstallerEditorExeUtils.Executable))
     {
         Window mainWindow = installerEditor.GetWindow("Installer Editor", InitializeOption.NoCache);
         UIAutomation.Find <MenuBar>(mainWindow, "Application").MenuItem("File", "New").Click();
         Tree configurationTree = UIAutomation.Find <Tree>(mainWindow, "configurationTree");
         Assert.AreEqual(1, configurationTree.Nodes.Count);
         string[] controlMenuItems = { "Label", "Edit", "Checkbox", "Browse", "Hyperlink" };
         UIAutomation.Find <MenuBar>(mainWindow, "Application").MenuItem("Edit", "Add", "Configurations", "Setup Configuration").Click();
         TreeNode configurationNode = configurationTree.SelectedNode;
         foreach (string controlMenuItem in controlMenuItems)
         {
             configurationNode.Select();
             UIAutomation.Find <MenuBar>(mainWindow, "Application").MenuItem("Edit", "Add", "Controls", controlMenuItem).Click();
             Assert.AreEqual("Lorem ipsum", configurationTree.SelectedNode.Name);
         }
     }
 }
        public void TestEditWithNotepad()
        {
            ConfigFile         configFile         = new ConfigFile();
            SetupConfiguration setupConfiguration = new SetupConfiguration();

            configFile.Children.Add(setupConfiguration);
            string configFileName = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString() + ".xml");

            Console.WriteLine("Writing '{0}'", configFileName);
            configFile.SaveAs(configFileName);
            try
            {
                ProcessStartInfo pi = new ProcessStartInfo(InstallerEditorExeUtils.Executable, "\"" + configFileName + "\"");
                using (Application installerEditor = Application.Launch(pi))
                {
                    Window mainWindow = installerEditor.GetWindow(
                        string.Format("Installer Editor - {0}", configFileName), InitializeOption.NoCache);
                    UIAutomation.Find <MenuBar>(mainWindow, "Application").MenuItem("File", "Edit With Notepad").Click();
                    Thread.Sleep(1000);
                    string windowText = string.Format("{0} -", Path.GetFileName(configFileName));
                    string moduleName = "NOTEPAD.EXE";
                    Console.WriteLine(windowText);
                    bool foundNotepad = false;
                    foreach (Process p in Process.GetProcesses())
                    {
                        if ((p.MainWindowTitle.StartsWith(windowText)) && (p.MainModule.ModuleName == moduleName))
                        {
                            Application notepad = Application.Attach(p);
                            notepad.GetWindow(p.MainWindowTitle, InitializeOption.NoCache).Close();
                            foundNotepad = true;
                            break;
                        }
                    }
                    Assert.IsTrue(foundNotepad);
                }
            }
            finally
            {
                File.Delete(configFileName);
            }
        }
Esempio n. 13
0
        public void TestSaveAsConfiguration()
        {
            string configFileName = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString() + ".xml");

            try
            {
                using (Application installerEditor = Application.Launch(InstallerEditorExeUtils.Executable))
                {
                    Window mainWindow = installerEditor.GetWindow("Installer Editor", InitializeOption.NoCache);
                    UIAutomation.Find <MenuBar>(mainWindow, "Application").MenuItem("File", "New").Click();
                    UIAutomation.Find <MenuBar>(mainWindow, "Application").MenuItem("Edit", "Add", "Configurations", "Setup Configuration").Click();
                    Menu mainMenuFile = UIAutomation.Find <MenuBar>(mainWindow, "Application").MenuItem("File");
                    mainMenuFile.Click();
                    Assert.IsFalse(mainMenuFile.ChildMenus.Find("Save").Enabled);
                    mainMenuFile.ChildMenus.Find("Save As...").Click();
                    Window  openWindow      = mainWindow.ModalWindow("Save As");
                    TextBox filenameTextBox = openWindow.Get <TextBox>("File name:");
                    filenameTextBox.Text = configFileName;
                    openWindow.KeyIn(KeyboardInput.SpecialKeys.RETURN);
                    openWindow.WaitWhileBusy();
                    mainWindow.WaitWhileBusy();
                    Assert.IsTrue(File.Exists(configFileName));
                    Assert.IsTrue(UIAutomation.Find <MenuBar>(mainWindow, "Application").MenuItem("File", "Save").Enabled);
                    StatusStrip    statusStrip = UIAutomation.Find <StatusStrip>(mainWindow, "statusStrip");
                    WinFormTextBox statusLabel = (WinFormTextBox)statusStrip.Items[0];
                    Assert.AreEqual(string.Format("Written {0}", configFileName), statusLabel.Text);
                    ConfigFile savedConfigFile = new ConfigFile();
                    savedConfigFile.Load(configFileName);
                    Assert.AreEqual(1, savedConfigFile.Children.Count);
                }
            }
            finally
            {
                if (File.Exists(configFileName))
                {
                    File.Delete(configFileName);
                }
            }
        }
        public void TestMakeExe()
        {
            ConfigFile         configFile         = new ConfigFile();
            SetupConfiguration setupConfiguration = new SetupConfiguration();
            string             configFileName     = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString() + ".xml");

            Console.WriteLine("Writing '{0}'", configFileName);
            configFile.SaveAs(configFileName);
            try
            {
                ProcessStartInfo pi = new ProcessStartInfo(InstallerEditorExeUtils.Executable, "\"" + configFileName + "\"");
                using (Application installerEditor = Application.Launch(pi))
                {
                    Window mainWindow = installerEditor.GetWindow(string.Format("Installer Editor - {0}", configFileName), InitializeOption.NoCache);
                    // create exe dialog
                    UIAutomation.Find <MenuBar>(mainWindow, "Application").MenuItem("File", "Create Exe...").Click();
                    Window createExeWindow = mainWindow.ModalWindow("Create Executable");
                    Console.WriteLine(dotNetInstallerExeUtils.Executable);
                    UIAutomation.Find <TextBox>(createExeWindow, "txtTemplateFile").BulkText = dotNetInstallerExeUtils.Executable;
                    UIAutomation.Find <Button>(createExeWindow, "btMake").Click();
                    // make opens a Save As dialog
                    string outputFilename = Path.Combine(Path.GetTempPath(), string.Format("{0}.exe", Guid.NewGuid()));

                    Window  saveAsWindow    = createExeWindow.ModalWindow("Save As");
                    TextBox filenameTextBox = saveAsWindow.Get <TextBox>("File name:");
                    filenameTextBox.BulkText = outputFilename;
                    saveAsWindow.KeyIn(KeyboardInput.SpecialKeys.RETURN);
                    saveAsWindow.WaitWhileBusy();
                    mainWindow.WaitWhileBusy();
                    Assert.IsTrue(File.Exists(outputFilename));
                    File.Delete(outputFilename);
                }
            }
            finally
            {
                File.Delete(configFileName);
            }
        }
Esempio n. 15
0
        public void TestRunFileIsADirectory()
        {
            //TODO: High: ok button on error window is not automatically clicked on windows 7 ultimate x64

            InstallerEditorExeUtils.RunOptions options = new InstallerEditorExeUtils.RunOptions();
            options.args = Environment.SystemDirectory;
            ProcessStartInfo pi = new ProcessStartInfo(InstallerEditorExeUtils.Executable, options.CommandLineArgs);

            using (Application installerEditor = Application.Launch(pi))
            {
                List <Window> windows = installerEditor.GetWindows();
                Assert.AreEqual(windows.Count, 2);
                Window errorWindow = windows[1];
                Assert.IsNotNull(errorWindow);
                Assert.AreEqual(errorWindow.Title, "Error");
                Button exitButton = UIAutomation.Find <Button>(errorWindow, "OK");
                exitButton.Click();
                while (!installerEditor.HasExited)
                {
                    Thread.Sleep(100);
                }
                Assert.AreEqual(-3, installerEditor.Process.ExitCode);
            }
        }
Esempio n. 16
0
        public void TestOpenCloseConfiguration()
        {
            ConfigFile         configFile         = new ConfigFile();
            SetupConfiguration setupConfiguration = new SetupConfiguration();

            configFile.Children.Add(setupConfiguration);
            string configFileName = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString() + ".xml");

            Console.WriteLine("Writing '{0}'", configFileName);
            configFile.SaveAs(configFileName);
            try
            {
                using (Application installerEditor = Application.Launch(InstallerEditorExeUtils.Executable))
                {
                    Window mainWindow = installerEditor.GetWindow("Installer Editor", InitializeOption.NoCache);
                    UIAutomation.Find <MenuBar>(mainWindow, "Application").MenuItem("File", "Open...").Click();
                    Window  openWindow      = mainWindow.ModalWindow("Open");
                    TextBox filenameTextBox = openWindow.Get <TextBox>("File name:");
                    filenameTextBox.Text = configFileName;
                    openWindow.KeyIn(KeyboardInput.SpecialKeys.RETURN);
                    mainWindow.WaitWhileBusy();
                    Tree configurationTree = UIAutomation.Find <Tree>(mainWindow, "configurationTree");
                    Assert.AreEqual("Config File", configurationTree.SelectedNode.Name);
                    StatusStrip    statusStrip = UIAutomation.Find <StatusStrip>(mainWindow, "statusStrip");
                    WinFormTextBox statusLabel = (WinFormTextBox)statusStrip.Items[0];
                    Assert.AreEqual(string.Format("Loaded {0}", configFileName), statusLabel.Text);
                    UIAutomation.Find <MenuBar>(mainWindow, "Application").MenuItem("File", "Close").Click();
                    Assert.AreEqual(0, configurationTree.Nodes.Count);
                    Assert.AreEqual("Ready", statusLabel.Text);
                }
            }
            finally
            {
                File.Delete(configFileName);
            }
        }