128
128
func (s *MergeSuite) TestManyInstalledAndNoRemote(c *C) {
129
129
installed := []snapPkg{
130
s.h.snapQueryToPayload(newFakePart("app1.canonical", "1.0", true)),
131
s.h.snapQueryToPayload(newFakePart("app2.canonical", "2.0", true)),
132
s.h.snapQueryToPayload(newFakePart("app3.canonical", "3.0", true)),
130
s.h.snapQueryToPayload(newFakePart("app1", "canonical", "1.0", true)),
131
s.h.snapQueryToPayload(newFakePart("app2", "canonical", "2.0", true)),
132
s.h.snapQueryToPayload(newFakePart("app3", "canonical", "3.0", true)),
135
135
snaps := mergeSnaps(installed, nil, true)
137
137
c.Assert(snaps, HasLen, 3)
138
c.Assert(snaps[0].Name, Equals, "app1.canonical")
138
c.Assert(snaps[0].Name, Equals, "app1")
139
139
c.Assert(snaps[0].Version, Equals, "1.0")
140
140
c.Assert(snaps[0].Status, Equals, webprogress.StatusInstalled)
142
c.Assert(snaps[1].Name, Equals, "app2.canonical")
142
c.Assert(snaps[1].Name, Equals, "app2")
143
143
c.Assert(snaps[1].Version, Equals, "2.0")
144
144
c.Assert(snaps[1].Status, Equals, webprogress.StatusInstalled)
146
c.Assert(snaps[2].Name, Equals, "app3.canonical")
146
c.Assert(snaps[2].Name, Equals, "app3")
147
147
c.Assert(snaps[2].Version, Equals, "3.0")
148
148
c.Assert(snaps[2].Status, Equals, webprogress.StatusInstalled)
151
151
func (s *MergeSuite) TestManyInstalledAndManyRemotes(c *C) {
152
152
installed := []snapPkg{
153
s.h.snapQueryToPayload(newFakePart("app1.canonical", "1.0", true)),
154
s.h.snapQueryToPayload(newFakePart("app2.canonical", "2.0", true)),
155
s.h.snapQueryToPayload(newFakePart("app3.canonical", "3.0", true)),
153
s.h.snapQueryToPayload(newFakePart("app1", "canonical", "1.0", true)),
154
s.h.snapQueryToPayload(newFakePart("app2", "canonical", "2.0", true)),
155
s.h.snapQueryToPayload(newFakePart("app3", "canonical", "3.0", true)),
158
158
remotes := []snapPkg{
159
s.h.snapQueryToPayload(newFakePart("app1.canonical", "1.0", false)),
160
s.h.snapQueryToPayload(newFakePart("app2.canonical", "2.0", false)),
161
s.h.snapQueryToPayload(newFakePart("app3.ubuntu", "3.0", false)),
159
s.h.snapQueryToPayload(newFakePart("app1", "canonical", "1.0", false)),
160
s.h.snapQueryToPayload(newFakePart("app2", "canonical", "2.0", false)),
161
s.h.snapQueryToPayload(newFakePart("app4", "ubuntu", "3.0", false)),
164
164
// Only installed
165
165
snaps := mergeSnaps(installed, remotes, true)
167
167
c.Assert(snaps, HasLen, 3)
168
c.Check(snaps[0].Name, Equals, "app1.canonical")
168
c.Check(snaps[0].Name, Equals, "app1")
169
c.Check(snaps[0].Origin, Equals, "canonical")
169
170
c.Check(snaps[0].Version, Equals, "1.0")
170
171
c.Check(snaps[0].Status, Equals, webprogress.StatusInstalled)
171
172
c.Check(snaps[0].InstalledSize, Equals, int64(30))
172
173
c.Check(snaps[0].DownloadSize, Equals, int64(0))
174
c.Check(snaps[1].Name, Equals, "app2.canonical")
175
c.Check(snaps[1].Name, Equals, "app2")
176
c.Check(snaps[1].Origin, Equals, "canonical")
175
177
c.Check(snaps[1].Version, Equals, "2.0")
176
178
c.Check(snaps[1].Status, Equals, webprogress.StatusInstalled)
177
179
c.Check(snaps[1].InstalledSize, Equals, int64(30))
178
180
c.Check(snaps[1].DownloadSize, Equals, int64(0))
180
c.Check(snaps[2].Name, Equals, "app3.canonical")
182
c.Check(snaps[2].Name, Equals, "app3")
183
c.Check(snaps[0].Origin, Equals, "canonical")
181
184
c.Check(snaps[2].Version, Equals, "3.0")
182
185
c.Check(snaps[2].Status, Equals, webprogress.StatusInstalled)
183
186
c.Check(snaps[2].InstalledSize, Equals, int64(30))
187
190
snaps = mergeSnaps(installed, remotes, false)
189
192
c.Assert(snaps, HasLen, 4)
190
c.Check(snaps[0].Name, Equals, "app1.canonical")
193
c.Check(snaps[0].Name, Equals, "app1")
194
c.Check(snaps[0].Origin, Equals, "canonical")
191
195
c.Check(snaps[0].Version, Equals, "1.0")
192
196
c.Check(snaps[0].Status, Equals, webprogress.StatusInstalled)
193
197
c.Check(snaps[0].InstalledSize, Equals, int64(30))
194
198
c.Check(snaps[0].DownloadSize, Equals, int64(0))
196
c.Check(snaps[1].Name, Equals, "app2.canonical")
200
c.Check(snaps[1].Name, Equals, "app2")
201
c.Check(snaps[1].Origin, Equals, "canonical")
197
202
c.Check(snaps[1].Version, Equals, "2.0")
198
203
c.Check(snaps[1].Status, Equals, webprogress.StatusInstalled)
199
204
c.Check(snaps[1].InstalledSize, Equals, int64(30))
200
205
c.Check(snaps[1].DownloadSize, Equals, int64(0))
202
c.Check(snaps[2].Name, Equals, "app3.canonical")
207
c.Check(snaps[2].Name, Equals, "app3")
208
c.Check(snaps[2].Origin, Equals, "canonical")
203
209
c.Check(snaps[2].Version, Equals, "3.0")
204
210
c.Check(snaps[2].Status, Equals, webprogress.StatusInstalled)
205
211
c.Check(snaps[2].InstalledSize, Equals, int64(30))
206
212
c.Check(snaps[2].DownloadSize, Equals, int64(0))
208
c.Check(snaps[3].Name, Equals, "app3.ubuntu")
214
c.Check(snaps[3].Name, Equals, "app4")
215
c.Check(snaps[3].Origin, Equals, "ubuntu")
209
216
c.Check(snaps[3].Version, Equals, "3.0")
210
217
c.Check(snaps[3].Status, Equals, webprogress.StatusUninstalled)
211
218
c.Check(snaps[3].InstalledSize, Equals, int64(0))
216
223
s.h.statusTracker.Add("app4.ubuntu", webprogress.OperationInstall)
218
225
installed := []snapPkg{
219
s.h.snapQueryToPayload(newFakePart("app1.canonical", "1.0", true)),
220
s.h.snapQueryToPayload(newFakePart("app2.canonical", "2.0", true)),
221
s.h.snapQueryToPayload(newFakePart("app3.canonical", "3.0", true)),
226
s.h.snapQueryToPayload(newFakePart("app1", "canonical", "1.0", true)),
227
s.h.snapQueryToPayload(newFakePart("app2", "canonical", "2.0", true)),
228
s.h.snapQueryToPayload(newFakePart("app3", "canonical", "3.0", true)),
224
231
remotes := []snapPkg{
225
s.h.snapQueryToPayload(newFakePart("app1.canonical", "1.0", false)),
226
s.h.snapQueryToPayload(newFakePart("app4.ubuntu", "2.0", false)),
227
s.h.snapQueryToPayload(newFakePart("app5.ubuntu", "3.0", false)),
232
s.h.snapQueryToPayload(newFakePart("app1", "canonical", "1.0", false)),
233
s.h.snapQueryToPayload(newFakePart("app4", "ubuntu", "2.0", false)),
234
s.h.snapQueryToPayload(newFakePart("app5", "ubuntu", "3.0", false)),
230
237
// Installed and remotes
231
238
snaps := mergeSnaps(installed, remotes, false)
233
240
c.Assert(snaps, HasLen, 5)
234
c.Check(snaps[0].Name, Equals, "app1.canonical")
241
c.Check(snaps[0].Name, Equals, "app1")
235
242
c.Check(snaps[0].Version, Equals, "1.0")
236
243
c.Check(snaps[0].Status, Equals, webprogress.StatusInstalled)
238
c.Check(snaps[1].Name, Equals, "app2.canonical")
245
c.Check(snaps[1].Name, Equals, "app2")
239
246
c.Check(snaps[1].Version, Equals, "2.0")
240
247
c.Check(snaps[1].Status, Equals, webprogress.StatusInstalled)
242
c.Check(snaps[2].Name, Equals, "app3.canonical")
249
c.Check(snaps[2].Name, Equals, "app3")
243
250
c.Check(snaps[2].Version, Equals, "3.0")
244
251
c.Check(snaps[2].Status, Equals, webprogress.StatusInstalled)
246
c.Check(snaps[3].Name, Equals, "app4.ubuntu")
253
c.Check(snaps[3].Name, Equals, "app4")
247
254
c.Check(snaps[3].Version, Equals, "2.0")
248
255
c.Check(snaps[3].Status, Equals, webprogress.StatusInstalling)
249
256
c.Check(snaps[3].InstalledSize, Equals, int64(0))
250
257
c.Check(snaps[3].DownloadSize, Equals, int64(60))
252
c.Check(snaps[4].Name, Equals, "app5.ubuntu")
259
c.Check(snaps[4].Name, Equals, "app5")
253
260
c.Check(snaps[4].Version, Equals, "3.0")
254
261
c.Check(snaps[4].Status, Equals, webprogress.StatusUninstalled)
255
262
c.Check(snaps[4].InstalledSize, Equals, int64(0))