import sys

from qtpy import QtWidgets

from pyqtribbon import RibbonBar
from pyqtribbon.panel import RibbonPanel
from pyqtribbon.toolbutton import RibbonToolButton


def test_categories():
    if __name__ == "__main__":
        app = QtWidgets.QApplication(sys.argv)
        # Central widget
        window = QtWidgets.QMainWindow()

        # Ribbon bar
        ribbonbar = RibbonBar()
        window.setMenuBar(ribbonbar)

        categories = ribbonbar.addContextCategories("name", ["Context 1", "Context 2"])
        assert isinstance(categories, dict)
        assert len(categories) == 2
        assert categories["Context 1"].title() == "Context 1"
        assert categories["Context 2"].title() == "Context 2"

        panel1 = categories["Context 1"].addPanel("Context 1 Panel 1")
        button1 = panel1.addLargeButton("Button 1")
        assert isinstance(panel1, RibbonPanel)
        assert panel1.title() == "Context 1 Panel 1"
        assert isinstance(button1, RibbonToolButton)
        assert button1.text() == "Button 1"

        panel2 = categories["Context 2"].addPanel("Context 2 Panel 1")
        button2 = panel2.addLargeButton("Button 2")
        assert isinstance(panel2, RibbonPanel)
        assert panel2.title() == "Context 2 Panel 1"
        assert isinstance(button2, RibbonToolButton)
        assert button2.text() == "Button 2"

        # Show the window
        window.resize(1800, 350)
        window.show()
        sys.exit(app.exec_())
