Merge lp:~mandel/ubuntuone-windows-installer/add_load_preferences_test into lp:ubuntuone-windows-installer/beta

Proposed by Manuel de la Peña
Status: Merged
Approved by: John Lenton
Approved revision: 101
Merged at revision: 133
Proposed branch: lp:~mandel/ubuntuone-windows-installer/add_load_preferences_test
Merge into: lp:ubuntuone-windows-installer/beta
Diff against target: 237 lines (+158/-8)
6 files modified
src/Canonical.UbuntuOne.Client.Test/Canonical.UbuntuOne.Client.Test.csproj (+5/-0)
src/Canonical.UbuntuOne.Client.Test/Preferences/LoadPreferencesStartupTaskFixture.cs (+149/-0)
src/Canonical.UbuntuOne.Client/Preferences/LoadPreferencesStartupTask.cs (+2/-2)
src/UbuntuOneClient/App.config (+1/-1)
src/UbuntuOneClient/Program.cs (+0/-3)
src/UbuntuOneClient/objects.xml (+1/-2)
To merge this branch: bzr merge lp:~mandel/ubuntuone-windows-installer/add_load_preferences_test
Reviewer Review Type Date Requested Status
John Lenton (community) Approve
Review via email: mp+40632@code.launchpad.net

Description of the change

Adds extra testing for the load preferences startup task.

To post a comment you must log in.
101. By Manuel de la Peña

Added forgoten dir.

Revision history for this message
John Lenton (chipaca) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'src/Canonical.UbuntuOne.Client.Test/Canonical.UbuntuOne.Client.Test.csproj'
--- src/Canonical.UbuntuOne.Client.Test/Canonical.UbuntuOne.Client.Test.csproj 2010-10-12 13:07:02 +0000
+++ src/Canonical.UbuntuOne.Client.Test/Canonical.UbuntuOne.Client.Test.csproj 2010-11-12 14:14:32 +0000
@@ -87,9 +87,14 @@
87 <Compile Include="Notification\OperationCompletenessEventArgsFixture.cs" />87 <Compile Include="Notification\OperationCompletenessEventArgsFixture.cs" />
88 <Compile Include="Notification\RecentlyModifiedEventArgsFixture.cs" />88 <Compile Include="Notification\RecentlyModifiedEventArgsFixture.cs" />
89 <Compile Include="Notification\StateEventArgsFixture.cs" />89 <Compile Include="Notification\StateEventArgsFixture.cs" />
90 <Compile Include="Preferences\LoadPreferencesStartupTaskFixture.cs" />
90 <Compile Include="Properties\AssemblyInfo.cs" />91 <Compile Include="Properties\AssemblyInfo.cs" />
91 </ItemGroup>92 </ItemGroup>
92 <ItemGroup>93 <ItemGroup>
94 <ProjectReference Include="..\Canonical.Ubuntu.SSO\Canonical.Ubuntu.SSO.csproj">
95 <Project>{9460A771-2589-45DA-9618-9FE8BB7D16E8}</Project>
96 <Name>Canonical.Ubuntu.SSO</Name>
97 </ProjectReference>
93 <ProjectReference Include="..\Canonical.UbuntuOne.Client\Canonical.UbuntuOne.Client.csproj">98 <ProjectReference Include="..\Canonical.UbuntuOne.Client\Canonical.UbuntuOne.Client.csproj">
94 <Project>{7467483A-D6D5-4362-8DF4-57A7254EB569}</Project>99 <Project>{7467483A-D6D5-4362-8DF4-57A7254EB569}</Project>
95 <Name>Canonical.UbuntuOne.Client</Name>100 <Name>Canonical.UbuntuOne.Client</Name>
96101
=== added directory 'src/Canonical.UbuntuOne.Client.Test/Preferences'
=== added file 'src/Canonical.UbuntuOne.Client.Test/Preferences/LoadPreferencesStartupTaskFixture.cs'
--- src/Canonical.UbuntuOne.Client.Test/Preferences/LoadPreferencesStartupTaskFixture.cs 1970-01-01 00:00:00 +0000
+++ src/Canonical.UbuntuOne.Client.Test/Preferences/LoadPreferencesStartupTaskFixture.cs 2010-11-12 14:14:32 +0000
@@ -0,0 +1,149 @@
1/* Copyright 2010 Canonical Ltd.
2 *
3 * This file is part of UbuntuOne on Windows.
4 *
5 * UbuntuOne on Windows is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU Lesser General Public License version
7 * as published by the Free Software Foundation.
8 *
9 * Ubuntu One on Windows is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public License
15 * along with UbuntuOne for Windows. If not, see <http://www.gnu.org/licenses/>.
16 *
17 * Authors: Manuel de la Peña <manuel.delapena@canonical.com>
18 */
19using System.Collections.Generic;
20using Canonical.Ubuntu.SSO;
21using Canonical.UbuntuOne.Client.Preferences;
22using Canonical.UbuntuOne.Common;
23using NUnit.Framework;
24using Rhino.Mocks;
25using Rhino.Mocks.Interfaces;
26
27namespace Canonical.UbuntuOne.Client.Test.Preferences
28{
29 [TestFixture]
30 public class LoadPreferencesStartupTaskFixture
31 {
32 #region Variables
33
34 private ISSOCredentialsProvider _ssoProvider;
35 private IPreferencesManager _preferencesManager;
36 private ISyncDaemon _syncdaemon;
37 private IMessageBox _messageBox;
38 private MockRepository _mocks;
39 private LoadPreferencesStartupTask _task;
40
41 #endregion
42
43 #region Setup
44
45 [SetUp]
46 public void Setup()
47 {
48 _mocks = new MockRepository();
49 _ssoProvider = _mocks.StrictMock<ISSOCredentialsProvider>();
50 _preferencesManager = _mocks.StrictMock<IPreferencesManager>();
51 _syncdaemon = _mocks.StrictMock<ISyncDaemon>();
52 _messageBox = _mocks.StrictMock<IMessageBox>();
53 _task = new LoadPreferencesStartupTask
54 {
55 SSOCredentialsProvider = _ssoProvider,
56 PreferencesManager = _preferencesManager,
57 SyncDaemon = _syncdaemon,
58 MessageBox = _messageBox
59 };
60 // we start recording again, the reason is that the assigment of the SSOProvider does
61 // register the callback used for the events.
62 _mocks.BackToRecordAll();
63 }
64
65 #endregion
66
67 #region Tests
68
69 [Test]
70 public void ExecuteNotAutoSyncEnabledTest()
71 {
72 using(_mocks.Record())
73 {
74 Expect.Call(_preferencesManager.IsAutoSyncEnable)
75 .Return(false)
76 .Repeat.Once();
77 }
78 using(_mocks.Playback())
79 {
80 // we execute and expect nothing to occur
81 _task.Exeucte();
82 }
83 }
84
85 [Test]
86 public void ExecuteAutoSyncEnabledTest()
87 {
88 using (_mocks.Record())
89 {
90 Expect.Call(_preferencesManager.IsAutoSyncEnable)
91 .Return(true)
92 .Repeat.Once();
93 Expect.Call(() => _ssoProvider.LoginToGetCredentials(LoadPreferencesStartupTask.EventName,
94 LoadPreferencesStartupTask.ApplicationName))
95 .Repeat.Once();
96 }
97 using (_mocks.Playback())
98 {
99 _task.Exeucte();
100 }
101 }
102
103 [Test]
104 public void CredentialsFoundTest()
105 {
106 // we reassign the sso provider, so that we test that the events are correctly set,
107 // then throw an event and esure that the correct operation is performed
108 var credentials = new Dictionary<string, string>
109 {
110 {"Token", "Token"},
111 {"TokenSecret", "TokenSecret"},
112 {"ConsumerKey", "ConsumerKey"},
113 {"ConsumerSecret", "ConsumerSecret"}
114 };
115 IEventRaiser onCredentialsFound;
116 var args = new CredentialsFoundEventArgs(LoadPreferencesStartupTask.EventName, credentials);
117 using (_mocks.Record())
118 {
119 _ssoProvider.OnCredentialsError += null;
120 LastCall.IgnoreArguments();
121 _ssoProvider.OnCredentialsFound += null;
122 onCredentialsFound = LastCall.IgnoreArguments().GetEventRaiser();
123 _ssoProvider.OnCredetialsDenied += null;
124 LastCall.IgnoreArguments();
125 // code expected to execute once the event is raised
126 Expect.Call(_preferencesManager.AutoSyncFrequency)
127 .Return(10)
128 .Repeat.Once();
129 // TODO: We ougth to either patch RhinoMocks to allo to ignore one param, or create an object to mock that
130 // will return the path, I'm inclened towards the second option
131 Expect.Call(() => _syncdaemon.EnableManualSyncAutoExecution(
132 "",
133 credentials["Token"],
134 credentials["TokenSecret"],
135 credentials["ConsumerKey"],
136 credentials["ConsumerSecret"], 10))
137 .IgnoreArguments()
138 .Repeat.Once();
139 }
140 using(_mocks.Playback())
141 {
142 _task.SSOCredentialsProvider = _ssoProvider;
143 onCredentialsFound.Raise(this, args);
144 }
145 }
146
147 #endregion
148 }
149}
0150
=== modified file 'src/Canonical.UbuntuOne.Client/Preferences/LoadPreferencesStartupTask.cs'
--- src/Canonical.UbuntuOne.Client/Preferences/LoadPreferencesStartupTask.cs 2010-11-11 11:43:38 +0000
+++ src/Canonical.UbuntuOne.Client/Preferences/LoadPreferencesStartupTask.cs 2010-11-12 14:14:32 +0000
@@ -34,8 +34,8 @@
34 #region Variables34 #region Variables
3535
36 private ISSOCredentialsProvider _ssoProvider;36 private ISSOCredentialsProvider _ssoProvider;
37 private const string EventName = "PreferencesStartupLoad";37 internal const string EventName = "PreferencesStartupLoad";
38 private const string ApplicationName = "UbuntuOne";38 internal const string ApplicationName = "UbuntuOne";
39 private ILog _logger;39 private ILog _logger;
40 private readonly object _loggerLock = new object();40 private readonly object _loggerLock = new object();
4141
4242
=== modified file 'src/UbuntuOneClient/App.config'
--- src/UbuntuOneClient/App.config 2010-11-10 13:47:12 +0000
+++ src/UbuntuOneClient/App.config 2010-11-12 14:14:32 +0000
@@ -29,13 +29,13 @@
29 29
30 <spring>30 <spring>
31 <context>31 <context>
32 <resource uri="assembly://UbuntuOneClient/UbuntuOneClient/objects.xml"/>
33 <resource uri="assembly://Canonical.Ubuntu.SSO/Canonical.Ubuntu.SSO/objects.xml"/>32 <resource uri="assembly://Canonical.Ubuntu.SSO/Canonical.Ubuntu.SSO/objects.xml"/>
34 <resource uri="assembly://Canonical.Ubuntu.SSO.Views/Canonical.Ubuntu.SSO.Views/objects.xml"/>33 <resource uri="assembly://Canonical.Ubuntu.SSO.Views/Canonical.Ubuntu.SSO.Views/objects.xml"/>
35 <resource uri="assembly://Canonical.UbuntuOne.Client/Canonical.UbuntuOne.Client/objects.xml"/>34 <resource uri="assembly://Canonical.UbuntuOne.Client/Canonical.UbuntuOne.Client/objects.xml"/>
36 <resource uri="assembly://Canonical.UbuntuOne.Client.Views/Canonical.UbuntuOne.Client.Views/objects.xml"/>35 <resource uri="assembly://Canonical.UbuntuOne.Client.Views/Canonical.UbuntuOne.Client.Views/objects.xml"/>
37 <resource uri="assembly://Canonical.UbuntuOne.Common/Canonical.UbuntuOne.Common/objects.xml"/>36 <resource uri="assembly://Canonical.UbuntuOne.Common/Canonical.UbuntuOne.Common/objects.xml"/>
38 <resource uri="assembly://Canonical.UbuntuOne.ProcessDispatcher/Canonical.UbuntuOne.ProcessDispatcher/objects.xml"/>37 <resource uri="assembly://Canonical.UbuntuOne.ProcessDispatcher/Canonical.UbuntuOne.ProcessDispatcher/objects.xml"/>
38 <resource uri="assembly://UbuntuOneClient/UbuntuOneClient/objects.xml"/>
39 </context>39 </context>
40 40
41 </spring>41 </spring>
4242
=== modified file 'src/UbuntuOneClient/Program.cs'
--- src/UbuntuOneClient/Program.cs 2010-10-19 12:34:50 +0000
+++ src/UbuntuOneClient/Program.cs 2010-11-12 14:14:32 +0000
@@ -160,9 +160,6 @@
160160
161 ObjectsContainer.Initialize(new SpringContainer());161 ObjectsContainer.Initialize(new SpringContainer());
162 var program = ObjectsContainer.GetImplementationOf<Program>();162 var program = ObjectsContainer.GetImplementationOf<Program>();
163 // HACK: This should be done by the IoC and not manually
164 program.Application.StartupTasks.Add(ObjectsContainer.GetImplementationOf<PipeListeningStartupTask>());
165 program.Application.StartupTasks.Add(ObjectsContainer.GetImplementationOf<LoadPreferencesStartupTask>());
166 program.StartApplication();163 program.StartApplication();
167164
168 }165 }
169166
=== modified file 'src/UbuntuOneClient/objects.xml'
--- src/UbuntuOneClient/objects.xml 2010-10-19 12:34:50 +0000
+++ src/UbuntuOneClient/objects.xml 2010-11-12 14:14:32 +0000
@@ -48,10 +48,9 @@
48 </object>48 </object>
49 49
50 <object id="Application"50 <object id="Application"
51 type="UbuntuOneClient.ApplicationWrapper, UbuntuOneClient" >51 type="Canonical.UbuntuOne.Common.Utils.ApplicationWrapper, Canonical.UbuntuOne.Common" >
52 <property name="StartupTasks">52 <property name="StartupTasks">
53 <list element-type="Canonical.UbuntuOne.Common.Utils.IStartupTask, Canonical.UbuntuOne.Common">53 <list element-type="Canonical.UbuntuOne.Common.Utils.IStartupTask, Canonical.UbuntuOne.Common">
54 <value>1</value>
55 <ref object="PipeListeningStartupTask"/> <!-- task that ensures that we listen to messages from python-->54 <ref object="PipeListeningStartupTask"/> <!-- task that ensures that we listen to messages from python-->
56 <ref object="LoadPreferencesStartupTask"/> <!-- Load the preferences -->55 <ref object="LoadPreferencesStartupTask"/> <!-- Load the preferences -->
57 </list>56 </list>

Subscribers

People subscribed via source and target branches

to all changes: