!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)

/usr/local/lib/node_modules/homebridge-config-ui-x/node_modules/semver-store/   drwxr-xr-x
Free 13.2 GB of 57.97 GB (22.77%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     test.js (9.29 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
'use strict'

const { test } = require('tap')
const SemVerStore = require('./index')

test('Should create a store', t => {
  t.plan(1)

  const store = SemVerStore()

  store
    .set('1.2.3', 1)
    .set('1.2.4', 2)
    .set('1.3.0', 3)

  t.deepEqual(store.tree, {
    prefix: 0,
    store: null,
    childrenPrefixes: [1],
    children: {
      1: {
        prefix: 1,
        store: null,
        childrenPrefixes: [2, 3],
        children: {
          2: {
            prefix: 2,
            store: null,
            childrenPrefixes: [3, 4],
            children: {
              3: {
                prefix: 3,
                store: 1,
                childrenPrefixes: [],
                children: null
              },
              4: {
                prefix: 4,
                store: 2,
                childrenPrefixes: [],
                children: null
              }
            }
          },
          3: {
            prefix: 3,
            store: null,
            childrenPrefixes: [0],
            children: {
              0: {
                prefix: 0,
                store: 3,
                childrenPrefixes: [],
                children: null
              }
            }
          }
        }
      }
    }
  })
})

test('Should get the leaf', t => {
  t.plan(1)

  const store = SemVerStore()

  store
    .set('1.2.3', 1)
    .set('1.2.4', 2)
    .set('1.3.0', 3)

  t.strictEqual(store.get('1.2.4'), 2)
})

test('Should get the leaf (wildcard) / 1', t => {
  t.plan(1)

  const store = SemVerStore()

  store
    .set('1.2.3', 1)
    .set('1.2.4', 2)
    .set('1.3.0', 3)

  t.strictEqual(store.get('1.2.x'), 2)
})

test('Should get the leaf (wildcard) / 2', t => {
  t.plan(1)

  const store = SemVerStore()

  store
    .set('1.2.3', 1)
    .set('1.2.4', 2)
    .set('1.3.0', 3)

  t.strictEqual(store.get('1.x'), 3)
})

test('Should get the leaf (wildcard) / 3', t => {
  t.plan(1)

  const store = SemVerStore()

  store
    .set('1.2.3', 1)
    .set('1.2.4', 2)
    .set('1.3.0', 3)

  t.strictEqual(store.get('2.2.x'), null)
})

test('Should get the leaf (wildcard) / 4', t => {
  t.plan(1)

  const store = SemVerStore()

  store
    .set('1.2.3', 1)
    .set('1.2.4', 2)
    .set('1.3.0', 3)

  t.strictEqual(store.get('2.x'), null)
})

test('Should get the leaf (wildcard) / 5', t => {
  t.plan(1)

  const store = SemVerStore()

  store
    .set('1.0.0', 1)
    .set('1.0.1', 2)
    .set('1.0.2', 3)

  t.strictEqual(store.get('*'), 3)
})

test('Should get the leaf (wildcard) / 6', t => {
  t.plan(1)

  const store = SemVerStore()

  store
    .set('1.0.0', 1)
    .set('1.1.0', 2)
    .set('1.0.2', 3)

  t.strictEqual(store.get('*'), 2)
})

test('Should get the leaf (wildcard) / 7', t => {
  t.plan(1)

  const store = SemVerStore()

  store
    .set('2.0.0', 1)
    .set('1.1.0', 2)
    .set('2.0.2', 3)

  t.strictEqual(store.get('*'), 3)
})

test('Missing patch', t => {
  t.plan(1)

  const store = SemVerStore()

  store
    .set('1.2.3', 1)
    .set('1.2.4', 2)
    .set('1.3.0', 3)

  t.strictEqual(store.get('1.2'), 2)
})

test('Should get the leaf - 404', t => {
  t.plan(1)

  const store = SemVerStore()

  store
    .set('1.2.3', 1)
    .set('1.2.4', 2)
    .set('1.3.0', 3)

  t.strictEqual(store.get('1.2.5'), null)
})

test('Should get the leaf (bad formatted semver) / 1', t => {
  t.plan(1)

  const store = SemVerStore()

  store
    .set('1.2.3', 1)
    .set('1.2.4', 2)
    .set('1.3.0', 3)

  t.strictEqual(store.get('1.2.a'), null)
})

test('Should get the leaf (bad formatted semver) / 2', t => {
  t.plan(1)

  const store = SemVerStore()

  store
    .set('1.2.3', 1)
    .set('1.2.4', 2)
    .set('1.3.0', 3)

  t.strictEqual(store.get('1.a'), null)
})

test('Big numbers', t => {
  t.plan(1)

  const store = SemVerStore()

  store
    .set('1.22.34', 1)
    .set('2.32.456', 2)
    .set('345.432.34', 3)
    .set('343.432.36', 4)
    .set('343.432.342', 5)
    .set('343.435.367', 6)
    .set('342.435.34', 7)
    .set('341.432.34', 8)

  t.strictEqual(store.get('343.x'), 6)
})

test('Delete a version / 1', t => {
  t.plan(4)

  const store = SemVerStore()

  store
    .set('1.2.3', 1)
    .set('1.2.4', 2)

  t.strictEqual(store.get('1.2.3'), 1)
  t.strictEqual(store.get('1.2.4'), 2)

  store.del('1.2.3')

  t.strictEqual(store.get('1.2.3'), null)
  t.strictEqual(store.get('1.2.4'), 2)
})

test('Delete a version / 2', t => {
  t.plan(2)

  const store = SemVerStore()

  store
    .set('1.2.3', 1)
    .set('1.2.4', 2)

  t.deepEqual(store.tree, {
    prefix: 0,
    store: null,
    childrenPrefixes: [1],
    children: {
      1: {
        prefix: 1,
        store: null,
        childrenPrefixes: [2],
        children: {
          2: {
            prefix: 2,
            store: null,
            childrenPrefixes: [3, 4],
            children: {
              3: {
                prefix: 3,
                store: 1,
                childrenPrefixes: [],
                children: null
              },
              4: {
                prefix: 4,
                store: 2,
                childrenPrefixes: [],
                children: null
              }
            }
          }
        }
      }
    }
  })

  store.del('1.2.3')

  t.deepEqual(store.tree, {
    prefix: 0,
    store: null,
    childrenPrefixes: [1],
    children: {
      1: {
        prefix: 1,
        store: null,
        childrenPrefixes: [2],
        children: {
          2: {
            prefix: 2,
            store: null,
            childrenPrefixes: [4],
            children: {
              4: {
                prefix: 4,
                store: 2,
                childrenPrefixes: [],
                children: null
              }
            }
          }
        }
      }
    }
  })
})

test('Delete a version / 3', t => {
  t.plan(1)

  const store = SemVerStore()

  store
    .set('1.2.3', 1)
    .del('1.2.3')

  t.deepEqual(store.tree, {
    prefix: 0,
    store: null,
    childrenPrefixes: [],
    children: {}
  })
})

test('Delete a version / 4', t => {
  t.plan(1)

  const store = SemVerStore()

  store
    .set('1.2.3', 1)
    .set('2.2.3', 2)
    .del('1.2.3')

  t.deepEqual(store.tree, {
    prefix: 0,
    store: null,
    childrenPrefixes: [2],
    children: {
      2: {
        prefix: 2,
        store: null,
        childrenPrefixes: [2],
        children: {
          2: {
            prefix: 2,
            store: null,
            childrenPrefixes: [3],
            children: {
              3: {
                prefix: 3,
                store: 2,
                childrenPrefixes: [],
                children: null
              }
            }
          }
        }
      }
    }
  })
})

test('Delete a version / 5', t => {
  t.plan(1)

  const store = SemVerStore()

  store
    .set('1.2.3', 1)
    .set('1.3.3', 2)
    .set('2.2.3', 3)
    .del('1.2.x')

  t.deepEqual(store.tree, {
    prefix: 0,
    store: null,
    childrenPrefixes: [1, 2],
    children: {
      1: {
        prefix: 1,
        store: null,
        childrenPrefixes: [3],
        children: {
          3: {
            prefix: 3,
            store: null,
            childrenPrefixes: [3],
            children: {
              3: {
                prefix: 3,
                store: 2,
                childrenPrefixes: [],
                children: null
              }
            }
          }
        }
      },
      2: {
        prefix: 2,
        store: null,
        childrenPrefixes: [2],
        children: {
          2: {
            prefix: 2,
            store: null,
            childrenPrefixes: [3],
            children: {
              3: {
                prefix: 3,
                store: 3,
                childrenPrefixes: [],
                children: null
              }
            }
          }
        }
      }
    }
  })
})

test('Delete a version / 6', t => {
  t.plan(2)

  const store = SemVerStore()

  store
    .set('1.2.3', 1)
    .set('1.3.3', 2)
    .set('2.2.3', 3)
    .del('1.x')

  t.deepEqual(store.tree, {
    prefix: 0,
    store: null,
    childrenPrefixes: [2],
    children: {
      2: {
        prefix: 2,
        store: null,
        childrenPrefixes: [2],
        children: {
          2: {
            prefix: 2,
            store: null,
            childrenPrefixes: [3],
            children: {
              3: {
                prefix: 3,
                store: 3,
                childrenPrefixes: [],
                children: null
              }
            }
          }
        }
      }
    }
  })

  store.del('2.x')

  t.deepEqual(store.tree, {
    prefix: 0,
    store: null,
    childrenPrefixes: [],
    children: {}
  })
})

test('Empty store', t => {
  t.plan(1)

  const store = SemVerStore()

  store
    .set('1.2.3', 1)
    .set('1.3.3', 2)
    .set('2.2.3', 3)
    .empty()

  t.deepEqual(store.tree, {
    prefix: 0,
    store: null,
    childrenPrefixes: [],
    children: null
  })
})

test('get with bad type', t => {
  t.plan(1)

  const store = SemVerStore()

  store.set('1.2.3', 1)

  t.strictEqual(store.get(5), null)
})

test('set with bad type', t => {
  t.plan(1)

  const store = SemVerStore()

  try {
    store.set(1, 1)
    t.fail('Should fail')
  } catch (err) {
    t.is(err.message, 'Version should be a string')
  }
})

test('del with bad type', t => {
  t.plan(1)

  const store = SemVerStore()

  try {
    store.del(1)
    t.fail('Should fail')
  } catch (err) {
    t.is(err.message, 'Version should be a string')
  }
})

:: 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.006 ]--