!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/var/www/html/wincloud_gateway/node_modules/reactstrap/src/__tests__/   drwxr-xr-x
Free 12.95 GB of 57.97 GB (22.35%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     DropdownToggle.spec.js (6.59 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
import React from 'react';
import { mount } from 'enzyme';
import { DropdownToggle } from '../';
import { DropdownContext } from '../DropdownContext';

describe('DropdownToggle', () => {
  const setReferenceNode = jest.fn();
  let isOpen;
  let inNavbar;
  let toggle;

  beforeEach(() => {
    isOpen = false;
    inNavbar = false;
    setReferenceNode.mockClear();
    toggle = () => {
      isOpen = !isOpen;
    };
  });

  it('should wrap text', () => {
    const wrapper = mount(
      <DropdownContext.Provider value={{ isOpen, inNavbar, toggle }}>
        <DropdownToggle>Ello world</DropdownToggle>
      </DropdownContext.Provider>
    );

    expect(wrapper.text()).toBe('Ello world');
  });

  it('should add default sr-only content', () => {
    const wrapper = mount(
      <DropdownContext.Provider value={{ isOpen, inNavbar, toggle }}>
        <DropdownToggle />
      </DropdownContext.Provider>
    );

    expect(wrapper.text()).toBe('Toggle Dropdown');
    expect(wrapper.find('.sr-only').hostNodes().length).toBe(1);
  });

  it('should add default sr-only content', () => {
    const wrapper = mount(
      <DropdownContext.Provider value={{ isOpen, inNavbar, toggle }}>
        <DropdownToggle aria-label="Dropup Toggle" />
      </DropdownContext.Provider>
    );

    expect(wrapper.text()).toBe('Dropup Toggle');
    expect(wrapper.find('.sr-only').hostNodes().length).toBe(1);
  });

  it('should render elements', () => {
    const wrapper = mount(
      <DropdownContext.Provider value={{ isOpen, inNavbar, toggle }}>
        <DropdownToggle>Click Me</DropdownToggle>
      </DropdownContext.Provider>
    );

    expect(wrapper.text()).toBe('Click Me');
    expect(wrapper.find('button').hostNodes().length).toBe(1);
  });

  it('should render a caret', () => {
    const wrapper = mount(
      <DropdownContext.Provider value={{ isOpen, inNavbar, toggle }}>
        <DropdownToggle caret>Ello world</DropdownToggle>
      </DropdownContext.Provider>
    );

    expect(wrapper.childAt(0).childAt(0).hasClass('dropdown-toggle')).toBe(true);
  });

  describe('color', () => {
    it('should render the dropdown as a BUTTON element with default color secondary', () => {
      const wrapper = mount(
        <DropdownContext.Provider value={{ isOpen, inNavbar, toggle }}>
          <DropdownToggle />
        </DropdownContext.Provider>
      );

      expect(wrapper.find('button').hostNodes().length).toBe(1);
      expect(wrapper.find('button').hostNodes().hasClass('btn-secondary')).toBe(true);
    });

    it('should render the dropdown as a BUTTON element with explicit color success', () => {
      const wrapper = mount(
        <DropdownContext.Provider value={{ isOpen, inNavbar, toggle }}>
          <DropdownToggle color="success" />
        </DropdownContext.Provider>
      );

      expect(wrapper.find('button').hostNodes().length).toBe(1);
      expect(wrapper.find('button').hostNodes().hasClass('btn-success')).toBe(true);
    });

    it('should render the dropdown as an A element with no color attribute', () => {
      const wrapper = mount(
        <DropdownContext.Provider value={{ isOpen, inNavbar, toggle }}>
          <DropdownToggle tag="a" />
        </DropdownContext.Provider>
      );

      expect(wrapper.find('a').hostNodes().length).toBe(1);
      expect(wrapper.find('a[color]').hostNodes().length).toBe(0);
    });

    it('should render the dropdown as a DIV element with no color attribute', () => {
      const wrapper = mount(
        <DropdownContext.Provider value={{ isOpen, inNavbar, toggle }}>
          <DropdownToggle tag="div" color="success" />
        </DropdownContext.Provider>
      );

      expect(wrapper.find('div').hostNodes().length).toBe(1);
      expect(wrapper.find('div[color]').hostNodes().length).toBe(0);
    });
  });

  it('should render a split', () => {
    const wrapper = mount(
      <DropdownContext.Provider value={{ isOpen, inNavbar, toggle }}>
        <DropdownToggle split>Ello world</DropdownToggle>
      </DropdownContext.Provider>
    );

    expect(wrapper.childAt(0).childAt(0).hasClass('dropdown-toggle-split')).toBe(true);
  });

  describe('onClick', () => {
    it('should call props.onClick if it exists', () => {
      const onClick = jest.fn();
      const wrapper = mount(
        <DropdownContext.Provider value={{ isOpen, inNavbar, toggle }}>
          <DropdownToggle onClick={() => onClick()}>Ello world</DropdownToggle>
        </DropdownContext.Provider>
      );

      const instance = wrapper.instance();

      instance.onClick({});
      expect(onClick).toHaveBeenCalled();
    });

    it('should call context.toggle when present ', () => {
      toggle = jest.fn();
      const wrapper = mount(
        <DropdownContext.Provider value={{ isOpen, inNavbar, toggle }}>
          <DropdownToggle>Ello world</DropdownToggle>
        </DropdownContext.Provider>
      );
      
      const instance = wrapper.instance();

      instance.onClick({
        preventDefault: () => {
        }
      });
      expect(toggle).toHaveBeenCalled();
    });
  });

  describe('disabled', () => {
    it('should preventDefault when disabled', () => {
      const e = { preventDefault: jest.fn() };
      const wrapper = mount(
        <DropdownContext.Provider value={{ isOpen, inNavbar, toggle }}>
          <DropdownToggle disabled>Ello world</DropdownToggle>
        </DropdownContext.Provider>
      );
      const instance = wrapper.instance();

      instance.onClick(e);
      expect(e.preventDefault).toHaveBeenCalled();
    });
  });

  describe('nav', () => {
    it('should add .nav-link class', () => {
      const wrapper = mount(
        <DropdownContext.Provider value={{ isOpen, inNavbar, toggle }}>
          <DropdownToggle nav>Ello world</DropdownToggle>
        </DropdownContext.Provider>
      );

      expect(wrapper.find('a').hostNodes().length).toBe(1);
      expect(wrapper.find('.nav-link').hostNodes().length).toBe(1);
    });

    it('should not set the tag prop when the tag is defined', () => {
      const wrapper = mount(
        <DropdownContext.Provider value={{ isOpen, inNavbar, toggle }}>
          <DropdownToggle nav>Ello world</DropdownToggle>
        </DropdownContext.Provider>
      );

      expect(wrapper.prop('tag')).toBe(undefined);
    });

    it('should preventDefault', () => {
      const e = { preventDefault: jest.fn() };
      const wrapper = mount(
        <DropdownContext.Provider value={{ isOpen, inNavbar, toggle }}>
          <DropdownToggle nav>Ello world</DropdownToggle>
        </DropdownContext.Provider>
      );
      const instance = wrapper.instance();

      instance.onClick(e);
      expect(e.preventDefault).toHaveBeenCalled();
    });
  });
});

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0061 ]--