Skip to content

Commit 139dfe3

Browse files
committedSep 6, 2023
subclass platform editor tab title provider to respect settings (#652)
Signed-off-by: Andre Dietisheim <[email protected]>
1 parent df31833 commit 139dfe3

File tree

3 files changed

+17
-19
lines changed

3 files changed

+17
-19
lines changed
 

‎src/main/kotlin/com/redhat/devtools/intellij/kubernetes/editor/ResourceEditorTabTitleProvider.kt

+5-6
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,15 @@
1111
package com.redhat.devtools.intellij.kubernetes.editor
1212

1313
import com.intellij.openapi.fileEditor.impl.EditorTabTitleProvider
14+
import com.intellij.openapi.fileEditor.impl.UniqueNameEditorTabTitleProvider
1415
import com.intellij.openapi.project.Project
1516
import com.intellij.openapi.vfs.VirtualFile
1617
import com.redhat.devtools.intellij.common.validation.KubernetesResourceInfo
1718
import com.redhat.devtools.intellij.kubernetes.editor.util.isKubernetesResource
1819

19-
open class ResourceEditorTabTitleProvider : EditorTabTitleProvider {
20+
open class ResourceEditorTabTitleProvider(
21+
private val fallback: EditorTabTitleProvider = UniqueNameEditorTabTitleProvider()
22+
) : EditorTabTitleProvider {
2023

2124
companion object {
2225
const val TITLE_UNKNOWN_CLUSTERRESOURCE = "Unknown Cluster Resource"
@@ -34,14 +37,10 @@ open class ResourceEditorTabTitleProvider : EditorTabTitleProvider {
3437
TITLE_UNKNOWN_CLUSTERRESOURCE
3538
}
3639
} else {
37-
getTitleFor(file)
40+
fallback.getEditorTabTitle(project, file)
3841
}
3942
}
4043

41-
private fun getTitleFor(file: VirtualFile): String {
42-
return file.name
43-
}
44-
4544
private fun getTitleFor(info: KubernetesResourceInfo): String {
4645
val name = info.name ?: TITLE_UNKNOWN_NAME
4746
val namespace = info.namespace

‎src/main/resources/test.yml

Whitespace-only changes.

‎src/test/kotlin/com/redhat/devtools/intellij/kubernetes/editor/ResourceEditorTabTitleProviderTest.kt

+12-13
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@
1111

1212
package com.redhat.devtools.intellij.kubernetes.editor
1313

14+
import com.intellij.openapi.fileEditor.impl.EditorTabTitleProvider
1415
import com.intellij.openapi.project.Project
1516
import com.intellij.openapi.vfs.VirtualFile
16-
import com.nhaarman.mockitokotlin2.doReturn
17-
import com.nhaarman.mockitokotlin2.mock
17+
import com.nhaarman.mockitokotlin2.*
1818
import com.redhat.devtools.intellij.common.validation.KubernetesResourceInfo
1919
import com.redhat.devtools.intellij.kubernetes.editor.ResourceEditorTabTitleProvider.Companion.TITLE_UNKNOWN_NAME
2020
import com.redhat.devtools.intellij.kubernetes.model.mocks.Mocks.kubernetesResourceInfo
@@ -28,7 +28,6 @@ class ResourceEditorTabTitleProviderTest {
2828
private val namespace = "WildWest"
2929
private val kind = "Cowboy"
3030
private val apiGroup = "sillyLads/v1"
31-
private val resourceInfo = kubernetesResourceInfo(name, namespace, kubernetesTypeInfo(kind, apiGroup))
3231

3332
@Test
3433
fun `#getTitle should return 'resourcename@namespace' if file is temporary and contains kubernetes resource with namespace`() {
@@ -71,28 +70,28 @@ class ResourceEditorTabTitleProviderTest {
7170
}
7271

7372
@Test
74-
fun `#getTitle should return filename if file is NOT temporary`() {
73+
fun `#getTitle should ask fallback provider for title if file is NOT temporary`() {
7574
// given
76-
val fileName = "JollyJumper"
7775
val isTemporary = false
78-
val file: VirtualFile = mock {
79-
on { getName() } doReturn fileName
80-
}
76+
val file: VirtualFile = mock()
8177
val resourceInfo = kubernetesResourceInfo(
8278
"<none>",
8379
"<none>",
8480
kubernetesTypeInfo("<none>", "<none>"))
85-
val provider = createResourceEditorTabTitleProvider(isTemporary, resourceInfo)
81+
val fallback: EditorTabTitleProvider = mock()
82+
val provider = createResourceEditorTabTitleProvider(isTemporary, resourceInfo, fallback)
8683
// when
87-
val title = provider.getEditorTabTitle(mock(), file)
84+
provider.getEditorTabTitle(mock(), file)
8885
// then
89-
assertThat(title).isEqualTo(fileName)
86+
verify(fallback).getEditorTabTitle(any(), eq(file))
9087
}
9188

9289
private fun createResourceEditorTabTitleProvider(
93-
isTemporary: Boolean, info: KubernetesResourceInfo
90+
isTemporary: Boolean,
91+
info: KubernetesResourceInfo,
92+
fallback: EditorTabTitleProvider = mock()
9493
): ResourceEditorTabTitleProvider {
95-
return object : ResourceEditorTabTitleProvider() {
94+
return object : ResourceEditorTabTitleProvider(fallback) {
9695

9796
override fun getKubernetesResourceInfo(file: VirtualFile, project: Project): KubernetesResourceInfo {
9897
return info

0 commit comments

Comments
 (0)