Skip to content

Commit 071fcfe

Browse files
authored
Bugfix FXIOS-14185 ⁃ "Close tabs" button shows incorrect number of tabs after a specific scenario (#31093)
* FXIOS-14185 #30747 ⁃ "Close tabs" button shows incorrect number of tabs after a specific scenario * Fixed tests
1 parent 0b009b6 commit 071fcfe

File tree

4 files changed

+11
-1
lines changed

4 files changed

+11
-1
lines changed

firefox-ios/Client/Frontend/Browser/Tabs/Middleware/TabManagerMiddleware.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -367,6 +367,7 @@ final class TabManagerMiddleware: FeatureFlaggable,
367367
isPrivateMode: isPrivateMode,
368368
tabs: tabs,
369369
normalTabsCount: normalTabsCountTextForTabTray(for: uuid),
370+
privateTabsCount: privateTabsCountTextForTabTray(for: uuid),
370371
inactiveTabs: inactiveTabs,
371372
isInactiveTabsExpanded: false,
372373
enableDeleteTabsButton: shouldEnableDeleteTabsButton(for: uuid, isPrivateMode: isPrivateMode)

firefox-ios/Client/Frontend/Browser/Tabs/Models/TabDisplayModel.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ struct TabDisplayModel: Equatable {
88
var isPrivateMode: Bool
99
var tabs: [TabModel]
1010
var normalTabsCount: String
11+
var privateTabsCount: String
1112
var inactiveTabs: [InactiveTabsModel]
1213
var isInactiveTabsExpanded: Bool
1314
var undoCloseType: ToastType?

firefox-ios/Client/Frontend/Browser/Tabs/State/TabTrayState.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ struct TabTrayState: ScreenState, Equatable {
186186
isPrivateMode: state.isPrivateMode,
187187
selectedPanel: state.selectedPanel,
188188
normalTabsCount: tabCount,
189-
privateTabsCount: state.privateTabsCount,
189+
privateTabsCount: tabDisplayModel.privateTabsCount,
190190
hasSyncableAccount: state.hasSyncableAccount,
191191
enableDeleteTabsButton: tabDisplayModel.enableDeleteTabsButton)
192192

firefox-ios/firefox-ios-tests/Tests/ClientTests/TabTray/TabsPanelStateTests.swift

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,12 @@ final class TabPanelStateTests: XCTestCase {
2626
XCTAssertTrue(initialState.tabs.isEmpty)
2727
let reducer = tabsPanelReducer()
2828
let tabs = createTabs()
29+
let privateTabs = createTabs(isPrivate: true)
2930
let inactiveTabs = createInactiveTabs()
3031
let tabDisplayModel = TabDisplayModel(isPrivateMode: true,
3132
tabs: tabs,
3233
normalTabsCount: "\(tabs.count)",
34+
privateTabsCount: "\(privateTabs.count)",
3335
inactiveTabs: inactiveTabs,
3436
isInactiveTabsExpanded: false,
3537
enableDeleteTabsButton: true)
@@ -49,10 +51,12 @@ final class TabPanelStateTests: XCTestCase {
4951
XCTAssertTrue(initialState.tabs.isEmpty)
5052
let reducer = tabsPanelReducer()
5153
let tabs = createTabs()
54+
let privateTabs = createTabs(isPrivate: true)
5255
let inactiveTabs = createInactiveTabs()
5356
let tabDisplayModel = TabDisplayModel(isPrivateMode: true,
5457
tabs: tabs,
5558
normalTabsCount: "\(tabs.count)",
59+
privateTabsCount: "\(privateTabs.count)",
5660
inactiveTabs: inactiveTabs,
5761
isInactiveTabsExpanded: false,
5862
enableDeleteTabsButton: true)
@@ -91,9 +95,11 @@ final class TabPanelStateTests: XCTestCase {
9195
let initialState = createInitialState()
9296
let reducer = tabsPanelReducer()
9397
let tabs = createOneSelectedTab()
98+
let privateTabs = createTabs(isPrivate: true)
9499
let tabDisplayModel = TabDisplayModel(isPrivateMode: false,
95100
tabs: tabs,
96101
normalTabsCount: "\(tabs.count)",
102+
privateTabsCount: "\(privateTabs.count)",
97103
inactiveTabs: [InactiveTabsModel](),
98104
isInactiveTabsExpanded: false,
99105
enableDeleteTabsButton: true)
@@ -113,10 +119,12 @@ final class TabPanelStateTests: XCTestCase {
113119
XCTAssertTrue(initialState.inactiveTabs.isEmpty)
114120
let reducer = tabsPanelReducer()
115121
let tabs = createTabs()
122+
let privateTabs = createTabs(isPrivate: true)
116123
let inactiveTabs = createInactiveTabs()
117124
let tabDisplayModel = TabDisplayModel(isPrivateMode: false,
118125
tabs: tabs,
119126
normalTabsCount: "\(tabs.count)",
127+
privateTabsCount: "\(privateTabs.count)",
120128
inactiveTabs: [InactiveTabsModel](),
121129
isInactiveTabsExpanded: false,
122130
enableDeleteTabsButton: true)

0 commit comments

Comments
 (0)