Unverified Commit 4923aae7 authored by Kaitlyn Lee's avatar Kaitlyn Lee Committed by GitHub
Browse files

Merge pull request #398 from AgoinsUSGS/MosaicSceneWidget

Looks good!
parents ed5109fa 19caea01
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -42,7 +42,7 @@ That is the reason for the OS specific truth files. Please ignore the exit codes

sh: -c: line 0: unexpected EOF while looking for matching `''
sh: -c: line 1: syntax error: unexpected end of file
**PROGRAMMER ERROR** Executing command [ls -l * | grep Program | sed 's/\(.*\)\(ProgramLauncher.*\)/\2/] failed with return status [512].
**PROGRAMMER ERROR** Executing command [ls -l * | grep Program | sed 's/\(.*\)\(ProgramLauncher.*\)/\2/] failed with return status [256].

Testing non-existant Isis 3 program... 

@@ -52,8 +52,9 @@ Testing using Isis 3 program as a system program...
NOTE: The exit code for this test differs on each OS.
That is the reason for the OS specific truth files. Please ignore the exit codes.

libc++abi.dylib: terminating with uncaught exception of type Isis::IException: **ERROR** This process (program) was executed by an existing Isis 3 process. However, we failed to establish a communication channel with the parent (launcher) process. The parent process has a PID of [999].
**PROGRAMMER ERROR** Executing command [$ISISROOT/bin/stats from=\$base/testData/ab102401_ideal.cub -pid=999 -preference=\$ISISROOT/TestPreferences] failed with return status [6].
terminate called after throwing an instance of 'Isis::IException'
  what():  **ERROR** This process (program) was executed by an existing Isis 3 process. However, we failed to establish a communication channel with the parent (launcher) process. The parent process has a PID of [999].
**PROGRAMMER ERROR** Executing command [$ISISROOT/bin/stats from=\$base/testData/ab102401_ideal.cub -pid=999 -preference=\$ISISROOT/TestPreferences] failed with return status [134].

Testing using Isis 3 program as a system program without pid... 

+0 −8
Original line number Diff line number Diff line
********* Start testing of Isis::MosaicSceneWidgetTester *********
Config: Using QTest library 4.8.0, Qt 4.8.0
PASS   : Isis::MosaicSceneWidgetTester::initTestCase()
PASS   : Isis::MosaicSceneWidgetTester::testBasicFunctionality()
PASS   : Isis::MosaicSceneWidgetTester::testSynchronization()
PASS   : Isis::MosaicSceneWidgetTester::cleanupTestCase()
Totals: 4 passed, 0 failed, 0 skipped
********* Finished testing of Isis::MosaicSceneWidgetTester *********
+0 −94
Original line number Diff line number Diff line
#include "MosaicSceneWidgetTester.h"

#include <iostream>
#include <iomanip>

#include <QMetaType>
#include <QSettings>
#include <QSignalSpy>
#include <QStatusBar>
#include <QTest>
#include <QtWidgets>
#include <QTreeWidgetItem>

#include "FileName.h"
#include "Image.h"
#include "ImageList.h"
#include "MosaicSceneItem.h"
#include "MosaicSceneWidget.h"

namespace Isis {
  /**
   * This is a very basic functionality test.
   */
  void MosaicSceneWidgetTester::testBasicFunctionality() {
    QStatusBar status;

    MosaicSceneWidget widget(&status, true, true, NULL);
    widget.show();
    QTest::qWaitForWindowExposed(widget.windowHandle());
    QVERIFY(widget.getProgress());
    QVERIFY(widget.getView());
    QVERIFY(widget.getScene());
    QVERIFY(widget.getProjection() == NULL);

    Image *image = new Image(QString("./lub3994m.342.lev1.cub"));
    QScopedPointer<QMutex> cameraMutex(new QMutex);
    image->initFootprint(cameraMutex.data());

    ImageList images;
    images.append(image);

    widget.addImages(images);

    QCOMPARE(widget.allMosaicSceneItems().count(), 1);
    QCOMPARE(image, widget.allMosaicSceneItems().first()->image());
    QVERIFY(widget.cubesSelectable());

    // Check that the bounding rect is approx. the same
    QRectF expected(QPointF(2376269.37351469, -964957.418535598), QSize(109739, 48049));

    QVERIFY(qAbs(widget.cubesBoundingRect().top() - expected.top()) < 0.0001);
    QVERIFY(qAbs(widget.cubesBoundingRect().left() - expected.left()) < 0.0001);
    QVERIFY(qAbs(widget.cubesBoundingRect().bottom() - expected.bottom()) < 1);
    QVERIFY(qAbs(widget.cubesBoundingRect().right() - expected.right()) < 1);
  }


  void MosaicSceneWidgetTester::testSynchronization() {
    QStatusBar status;

    MosaicSceneWidget widget(&status, true, true, NULL);
    widget.show();
    QTest::qWaitForWindowExposed(widget.windowHandle());

    Image *image = new Image(QString("./lub3994m.342.lev1.cub"));
    QScopedPointer<QMutex> cameraMutex(new QMutex);
    image->initFootprint(cameraMutex.data());

    ImageList images;
    images.append(image);

    widget.addImages(images);

    MosaicSceneItem *sceneItem = widget.allMosaicSceneItems().first();

    ImageDisplayProperties *displayProperties = image->displayProperties();
    QCOMPARE(sceneItem->color(),
             displayProperties->getValue(ImageDisplayProperties::Color).value<QColor>());
    QCOMPARE(sceneItem->isSelected(),
             displayProperties->getValue(ImageDisplayProperties::Selected).toBool());

    sceneItem->setSelected(true);

    QVERIFY(sceneItem->isSelected());
    QCOMPARE(sceneItem->isSelected(),
             displayProperties->getValue(ImageDisplayProperties::Selected).toBool());

    displayProperties->setSelected(false);

    QVERIFY(!displayProperties->getValue(ImageDisplayProperties::Selected).toBool());
    QCOMPARE(sceneItem->isSelected(),
             displayProperties->getValue(ImageDisplayProperties::Selected).toBool());
  }
}
+0 −22
Original line number Diff line number Diff line
#ifndef MosaicSceneWidgetTester_H
#define MosaicSceneWidgetTester_H

#include <QtTestGui>

namespace Isis {
  /**
   * @author 2012-??-?? Steven Lambright
   * 
   * @internal
   */
  class MosaicSceneWidgetTester : public QObject {
    Q_OBJECT

    private slots:
      void testBasicFunctionality();
      void testSynchronization();

  };
}

#endif
+0 −3
Original line number Diff line number Diff line
#include "MosaicSceneWidgetTester.h"
QTEST_MAIN(Isis::MosaicSceneWidgetTester)