pxmlw6n2f/Gazebo_Distributed_TCP/gazebo/gui/SaveDialog_TEST.cc

87 lines
2.8 KiB
C++

/*
* 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<QFileDialog *>();
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<QPushButton *> pushButtons = saveDialog->findChildren<QPushButton *>();
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)