def METHOD_NAME(self):
    gnome_extension = ExtensionImpl(
        extension_name="gnome-3.38", yaml_data=dict(base="core20")
    )
    self.expectThat(
        gnome_extension.root_snippet,
        Equals(
            {
                "assumes": ["snapd2.43"],
                "plugs": {
                    "desktop": {"mount-host-font-cache": False},
                    "gtk-3-themes": {
                        "interface": "content",
                        "target": "$SNAP/data-dir/themes",
                        "default-provider": "gtk-common-themes",
                    },
                    "icon-themes": {
                        "interface": "content",
                        "target": "$SNAP/data-dir/icons",
                        "default-provider": "gtk-common-themes",
                    },
                    "sound-themes": {
                        "interface": "content",
                        "target": "$SNAP/data-dir/sounds",
                        "default-provider": "gtk-common-themes",
                    },
                    "gnome-3-38-2004": {
                        "interface": "content",
                        "target": "$SNAP/gnome-platform",
                        "default-provider": "gnome-3-38-2004",
                    },
                },
                "environment": {
                    "SNAP_DESKTOP_RUNTIME": "$SNAP/gnome-platform",
                    "GTK_USE_PORTAL": "1",
                },
                "hooks": {
                    "configure": {
                        "plugs": ["desktop"],
                        "command-chain": [
                            "snap/command-chain/hooks-configure-desktop"
                        ],
                    }
                },
                "layout": {
                    "/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/webkit2gtk-4.0": {
                        "bind": "$SNAP/gnome-platform/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/webkit2gtk-4.0"
                    },
                    "/usr/share/xml/iso-codes": {
                        "bind": "$SNAP/gnome-platform/usr/share/xml/iso-codes"
                    },
                    "/usr/share/libdrm": {
                        "bind": "$SNAP/gnome-platform/usr/share/libdrm"
                    },
                },
            }
        ),
    )
    self.expectThat(
        gnome_extension.app_snippet,
        Equals(
            {
                "command-chain": ["snap/command-chain/desktop-launch"],
                "plugs": [
                    "desktop",
                    "desktop-legacy",
                    "gsettings",
                    "opengl",
                    "wayland",
                    "x11",
                ],
            }
        ),
    )
    self.expectThat(
        gnome_extension.part_snippet,
        Equals(
            {
                "build-environment": [
                    {"PATH": "/snap/gnome-3-38-2004-sdk/current/usr/bin:$PATH"},
                    {
                        "XDG_DATA_DIRS": "$SNAPCRAFT_STAGE/usr/share:/snap/gnome-3-38-2004-sdk/current/usr/share:/usr/share:$XDG_DATA_DIRS"
                    },
                    {
                        "LD_LIBRARY_PATH": ":".join(
                            [
                                "/snap/gnome-3-38-2004-sdk/current/lib/$SNAPCRAFT_ARCH_TRIPLET",
                                "/snap/gnome-3-38-2004-sdk/current/usr/lib/$SNAPCRAFT_ARCH_TRIPLET",
                                "/snap/gnome-3-38-2004-sdk/current/usr/lib",
                                "/snap/gnome-3-38-2004-sdk/current/usr/lib/vala-current",
                                "/snap/gnome-3-38-2004-sdk/current/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/pulseaudio",
                            ]
                        )
                        + "${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
                    },
                    {
                        "PKG_CONFIG_PATH": "/snap/gnome-3-38-2004-sdk/current/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/pkgconfig:/snap/gnome-3-38-2004-sdk/current/usr/lib/pkgconfig:/snap/gnome-3-38-2004-sdk/current/usr/share/pkgconfig:$PKG_CONFIG_PATH"
                    },
                    {
                        "GETTEXTDATADIRS": "/snap/gnome-3-38-2004-sdk/current/usr/share/gettext-current:$GETTEXTDATADIRS"
                    },
                    {
                        "GDK_PIXBUF_MODULE_FILE": "/snap/gnome-3-38-2004-sdk/current/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/gdk-pixbuf-current/loaders.cache"
                    },
                    {
                        "ACLOCAL_PATH": "/snap/gnome-3-38-2004-sdk/current/usr/share/aclocal${ACLOCAL_PATH:+:$ACLOCAL_PATH}"
                    },
                    {
                        "PYTHONPATH": ":".join(
                            [
                                "/snap/gnome-3-38-2004-sdk/current/usr/lib/python3.8",
                                "/snap/gnome-3-38-2004-sdk/current/usr/lib/python3/dist-packages",
                            ]
                        )
                        + "${PYTHONPATH:+:$PYTHONPATH}"
                    },
                ]
            }
        ),
    )
    self.expectThat(
        gnome_extension.parts,
        Equals(
            {
                "gnome-3-38-extension": {
                    "source": "$SNAPCRAFT_EXTENSIONS_DIR/desktop",
                    "source-subdir": "gnome",
                    "plugin": "make",
                    "make-parameters": [
                        "WITH_PYTHON=3.8",
                        "PLATFORM_PLUG=gnome-3-38-2004",
                    ],
                    "build-snaps": ["gnome-3-38-2004-sdk/latest/stable"],
                    "build-packages": ["gcc"],
                }
            }
        ),
    )