/* * Copyright (C) 2015 Open Source Robotics Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ #include "gazebo/gui/SaveDialog.hh" #include "gazebo/gui/SaveDialog_TEST.hh" #include "test_config.h" ///////////////////////////////////////////////// void SaveDialogTestHelper::CheckFileDialog() { QVERIFY(this->dialog); QFileDialog *fileDialog = this->dialog->findChild(); QVERIFY(fileDialog); // set default path to home dir. fileDialog->setDirectory(QDir::homePath()); // hit enter to close dialog QTest::keyClick(fileDialog, Qt::Key_Enter); QVERIFY(!fileDialog->isVisible()); } ///////////////////////////////////////////////// void SaveDialog_TEST::SaveLocation() { gazebo::gui::SaveDialog *saveDialog = new gazebo::gui::SaveDialog; QCoreApplication::processEvents(); // Set the model name std::string modelName = "model name"; saveDialog->SetModelName(modelName); // Get folder name from model name std::string folderName = saveDialog->GetFolderNameFromModelName(modelName); const std::string expectedFolderName("model_name"); std::cout << "folderName: " << folderName << std::endl; std::cout << "expectedFolderName: " << expectedFolderName << std::endl; QVERIFY(folderName == expectedFolderName); // find the browse button QList pushButtons = saveDialog->findChildren(); QVERIFY(!pushButtons.empty()); QPushButton *browseButton = NULL; for (int i = 0; i < pushButtons.size(); ++i) { QPushButton *button = pushButtons[i]; QVERIFY(button); if (button->text().toLower().toStdString() == "browse") browseButton = button; } QVERIFY(browseButton); // set a path in the browse file dialog and verify value SaveDialogTestHelper helper; helper.dialog = saveDialog; QTimer::singleShot(0, &helper, SLOT(CheckFileDialog())); browseButton->click(); const std::string actualSaveLocation(saveDialog->GetSaveLocation()); const std::string expectedSaveLocation( QDir::homePath().toStdString() + "/" + folderName); std::cout << "actualSaveLocation: " << actualSaveLocation << std::endl; std::cout << "expectedSaveLocation: " << expectedSaveLocation << std::endl; QVERIFY(actualSaveLocation == expectedSaveLocation); delete saveDialog; } // Generate a main function for the test QTEST_MAIN(SaveDialog_TEST)