diff options
author | Nat Goodspeed <nat@lindenlab.com> | 2015-01-23 04:09:17 -0800 |
---|---|---|
committer | Nat Goodspeed <nat@lindenlab.com> | 2015-01-23 04:09:17 -0800 |
commit | c93648e3d2a5a70a6fc8c0de46d45580798b0386 (patch) | |
tree | a594de399fc7bb290762c942eec2b5ce88243359 | |
parent | ba43a216fdd1ee5f77f3aece4ce9dbf441bab3e6 (diff) |
Make MandatoryUpdateMachine use LLLoginInstance's LLNotificationsInterface.
LLLoginInstance has a test hook setNotificationsInterface(), used by
lllogininstance_test.cpp to redirect notifications through a dummy
LLNotificationsInterface implementation. Certain of LLLoginInstance's
MandatoryUpdateMachine state classes need to post notifications too; but until
now they directly called LLNotificationsUtil::add(). In the production viewer,
this should (!) be the same as calling through LLLoginInstance::mNotifications
-- but it broke two of the LLLoginInstance unit tests, so they were skipped.
Since MandatoryUpdateMachine's constructor is already passed the invoking
LLLoginInstance&, make it store the reference. Add MandatoryUpdateMachine::
getNotificationsInterface(), which forwards to new LLLoginInstance::
getNotificationsInterface(). Change LLNotificationsUtil::add() calls in
MandatoryUpdateMachine state classes to call through mMachine's
getNotificationInterface() instead.
This allows us to remove #include "llnotificationsutil.h" from
lllogininstance.cpp, also that #include plus stub LLNotificationsUtil::add()
implementation from lllogininstance_test.cpp.
Finally, it allows us to remove the skip() calls from the two unit tests.
-rwxr-xr-x | indra/newview/lllogininstance.cpp | 16 | ||||
-rwxr-xr-x | indra/newview/lllogininstance.h | 1 | ||||
-rwxr-xr-x | indra/newview/tests/lllogininstance_test.cpp | 12 |
3 files changed, 12 insertions, 17 deletions
diff --git a/indra/newview/lllogininstance.cpp b/indra/newview/lllogininstance.cpp index 03ef11d8e5..b4d0bb6823 100755 --- a/indra/newview/lllogininstance.cpp +++ b/indra/newview/lllogininstance.cpp @@ -58,7 +58,6 @@ #include "llmachineid.h" #include "llupdaterservice.h" #include "llevents.h" -#include "llnotificationsutil.h" #include "llappviewer.h" #include <boost/scoped_ptr.hpp> @@ -75,9 +74,14 @@ namespace { { public: MandatoryUpdateMachine(LLLoginInstance & loginInstance, LLUpdaterService & updaterService); - + void start(void); - + + LLNotificationsInterface& getNotificationsInterface() const + { + return mLoginInstance.getNotificationsInterface(); + } + private: class State; class CheckingForUpdate; @@ -87,6 +91,7 @@ namespace { class WaitingForDownload; boost::scoped_ptr<State> mState; + LLLoginInstance & mLoginInstance; LLUpdaterService & mUpdaterService; void setCurrentState(State * newState); @@ -192,6 +197,7 @@ std::string construct_start_string(); MandatoryUpdateMachine::MandatoryUpdateMachine(LLLoginInstance & loginInstance, LLUpdaterService & updaterService): + mLoginInstance(loginInstance), mUpdaterService(updaterService) { ; // No op. @@ -326,7 +332,7 @@ MandatoryUpdateMachine::Error::Error(MandatoryUpdateMachine & machine): void MandatoryUpdateMachine::Error::enter(void) { LL_INFOS() << "entering error" << LL_ENDL; - LLNotificationsUtil::add("FailedRequiredUpdateInstall", LLSD(), LLSD(), boost::bind(&MandatoryUpdateMachine::Error::onButtonClicked, this, _1, _2)); + mMachine.getNotificationsInterface().add("FailedRequiredUpdateInstall", LLSD(), LLSD(), boost::bind(&MandatoryUpdateMachine::Error::onButtonClicked, this, _1, _2)); } @@ -382,7 +388,7 @@ MandatoryUpdateMachine::StartingUpdaterService::StartingUpdaterService(Mandatory void MandatoryUpdateMachine::StartingUpdaterService::enter(void) { LL_INFOS() << "entering start update service" << LL_ENDL; - LLNotificationsUtil::add("UpdaterServiceNotRunning", LLSD(), LLSD(), boost::bind(&MandatoryUpdateMachine::StartingUpdaterService::onButtonClicked, this, _1, _2)); + mMachine.getNotificationsInterface().add("UpdaterServiceNotRunning", LLSD(), LLSD(), boost::bind(&MandatoryUpdateMachine::StartingUpdaterService::onButtonClicked, this, _1, _2)); } diff --git a/indra/newview/lllogininstance.h b/indra/newview/lllogininstance.h index b0247da7c8..c6773bbf68 100755 --- a/indra/newview/lllogininstance.h +++ b/indra/newview/lllogininstance.h @@ -70,6 +70,7 @@ public: void setPlatformInfo(const std::string platform, const std::string platform_version); void setNotificationsInterface(LLNotificationsInterface* ni) { mNotifications = ni; } + LLNotificationsInterface& getNotificationsInterface() const { return *mNotifications; } typedef boost::function<void()> UpdaterLauncherCallback; void setUpdaterLauncher(const UpdaterLauncherCallback& ulc) { mUpdaterLauncher = ulc; } diff --git a/indra/newview/tests/lllogininstance_test.cpp b/indra/newview/tests/lllogininstance_test.cpp index 9ee6403739..1b0334498e 100755 --- a/indra/newview/tests/lllogininstance_test.cpp +++ b/indra/newview/tests/lllogininstance_test.cpp @@ -193,14 +193,6 @@ void LLAppViewer::forceQuit(void) {} LLAppViewer * LLAppViewer::sInstance = 0; //----------------------------------------------------------------------------- -#include "llnotificationsutil.h" -LLNotificationPtr LLNotificationsUtil::add(const std::string& name, - const LLSD& substitutions, - const LLSD& payload, - boost::function<void (const LLSD&, const LLSD&)> functor) { return LLNotificationPtr((LLNotification*)0); } - - -//----------------------------------------------------------------------------- #include "llupdaterservice.h" std::string const & LLUpdaterService::pumpName(void) @@ -488,8 +480,6 @@ namespace tut template<> template<> void lllogininstance_object::test<3>() { - skip("test fails with Xcode 6, skipping"); - set_test_name("Test Mandatory Update User Accepts"); // Part 1 - Mandatory Update, with User accepts response. @@ -517,8 +507,6 @@ namespace tut template<> template<> void lllogininstance_object::test<4>() { - skip("test fails with Xcode 6, skipping"); - set_test_name("Test Mandatory Update User Decline"); // Test connect with update needed. |