diff options
Diffstat (limited to 'src/tests/SampleTest/Test_ImportProFile.csmacro')
-rw-r--r-- | src/tests/SampleTest/Test_ImportProFile.csmacro | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/src/tests/SampleTest/Test_ImportProFile.csmacro b/src/tests/SampleTest/Test_ImportProFile.csmacro new file mode 100644 index 00000000..49e71306 --- /dev/null +++ b/src/tests/SampleTest/Test_ImportProFile.csmacro @@ -0,0 +1,68 @@ +/**************************************************************************** +** +** Copyright (C) 2019 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Qt VS Tools. +** +** $QT_BEGIN_LICENSE:GPL-EXCEPT$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +//# using System.IO + +//# var string QtConfPath + +var qtConf = File.ReadAllLines(QtConfPath); +var prefix = qtConf + .Where(x => x.StartsWith("Prefix=")).First() + .Substring("Prefix=".Length); + +var qtDir = Path.GetFullPath(Path.Combine(Path.GetDirectoryName(QtConfPath), prefix)); + +var examplesRelativePath = qtConf + .Where(x => x.StartsWith("Examples=")).First() + .Substring("Examples=".Length); +var examplesPath = Path.GetFullPath(Path.Combine(qtDir, examplesRelativePath)); +var wigglyPath = Path.GetFullPath(Path.Combine(examplesPath, "widgets", "widgets", "wiggly")); + +var projectName = "QtVsTest_Import"; +var tempDir = Environment.GetEnvironmentVariable("LOCALAPPDATA"); +var projectDir = Path.Combine(tempDir, projectName); +var projectFile = Path.Combine(projectDir, "wiggly.pro"); + +if (Directory.Exists(projectDir)) + Directory.Delete(projectDir, recursive: true); +Directory.CreateDirectory(projectDir); + +Directory.EnumerateFiles(wigglyPath) + .Where(x => new[] { ".pro", ".h", ".cpp" }.Contains(Path.GetExtension(x))) + .ToList().ForEach(x => File.Copy(x, Path.Combine(projectDir, Path.GetFileName(x)))); + +var taskOpenPro = Task.Run(() => Dte.ExecuteCommand("QtVSTools.OpenQtProjectFile.pro")); +taskOpenPro.Wait(0); + +//# ui context VSROOT 3000 => "Select a Qt Project to Add to the Solution" +//# ui pattern Value proFilePath => new[] { "File name:", "combo box" }, new[] { "File name:", "edit" } +proFilePath.SetValue(projectFile); +//# ui pattern Invoke => new[] { "Open", "button", "1" } + +if (!taskOpenPro.Wait(15000)) + throw new Exception("Timeout: QtVSTools.OpenQtProjectFile.pro"); |