87 lines
2.8 KiB
C++
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)
|